@furystack/utils

General utilities

Usage no npm install needed!

<script type="module">
  import furystackUtils from 'https://cdn.skypack.dev/@furystack/utils';
</script>

README

furystack

Build Status Greenkeeper badge

FuryStack is a flexible end-to-end framework that allows you to build complex services fast and easily.

  • Written in Typescript. The public APIs are clean and readable.
  • The Core is built on a top of native Node calls. Dependencies are carefully selected.
  • You can create a backend in minutes with authentication, data stores, custom actions 3rd party packages. You don't have to waste your time looking for packages for entry-level functionality
  • You can implement and use your own custom actions, websocket calls, data store or logger easily
  • Custom front-end library with type safe JSX syntax and unidirectional data binding
  • Same conceptions and design principles are shared between the frontend and the backend. DI, Logging, Disposables etc... works in the same way - and from the same package 😉

Layers of FuryStack

@furystack/core npm

The entry-level logic (like store managers or server managers) and models (definition of the Physical Stores, users, roles) and some entry-level implementation (like InMemoryStore and FileStore for testing) sits here.

@furystack/repository npm

Repository is a collection of DataSets. A DataSet is like an extended version of a physical store - you can use a context (like a UserContext) for authorization or entity manipulation from the DI. You can subscribe to events here as well.

@furystack/rest npm

If you want to communicate with the world, this package will be your friend. You can define your API as a Typescript interface and implement it on the backend with @furystack/rest-service. Consuming this APIs are also handy with the @furystack/rest-client-fetch package in the browser.

Optional goodies

@furystack/auth-google npm

You can log in with a Google ID Token into a FuryStack backend with this simple package.

Shades npm

@furystack/shades is a UI library that helps you to create web UIs easily. The syntax is JSX and it works also with @furytechs tools like Logger or Inject. Uses unidirectional data binding.

Utility packages

@furystack/utils npm

A collection of useful tools like Disposables with using() and usingAsync() helpers, deepMerge, Tracer and an ultra-lightweight Observer/Observable implementation.

@furystack/logging npm

A powerful logging library that allows you to create log entries with scopes, levels and custom data and process them with a logic you'd like. You can collect telemetry or create a crash dump collector.

@furystack/inject npm

Inject is a DI / IOC utility that allows you to handle your dependencies easily is a hearth and soul of the stack. In short terms - Just mark your services as Injectable() and use injector.getInstance(...) to retrieve them. An injector can be extended with extension methods, so you can configure your whole app in one place in a type safe way.