@locational/unity
TypeScript icon, indicating that this package has built-in type declarations

0.1.5 • Public • Published

Unity

Unity is a declarative data management library intended to be used with some rendering framework like React or Vue.

It has its own immutable data store, type checking, virtual components ('units') and a set of transforms for data manipulation.

Unity allows you to describe your application functionality in a JSON configuration file, verify its validity and run it.

Your rendering framework will only need to worry about UI components and how they map onto Unity virtual components.

For discussion:

Ideally Unity should come with Vue app that has implementation for all virtual components and can render any Unity app.

Values

All values in Unity are statically typed and immutable.

Empty

Analog to Unit type in functional languages.

Number, String, Boolean

Same as JavaScript basic types

List

Typed array. All elements of a list should be of the same type.

Record

An object with schema.

Enum

An array that must hold one of the variants.

Computed

A value contains an expression. May depend on other values and has an expected type.

Store

Data store is an immutable bucket of named values. It can register, replace or lookup values by name.

Components

Components group functionality into logical units.

Each component has a pipeline full of Runnables that transform input data from the store and should output data with type compatible with componet.

Components also hold controls that can trigger actions. UI layer should query component for its controls and render their representation.

Actions

Actions are predefined side effects that can be triggered by components. They can be used to send HTTP requests, update the Store, etc.

Runnables

Runnables are predefined operations on Values that output other Values.

There are two types of runnables:

  • Filter - output value type is always the same as input
  • Transform - may change output value type

Some Runnables can be customized with expressions.

Readme

Keywords

none

Package Sidebar

Install

npm i @locational/unity

Weekly Downloads

0

Version

0.1.5

License

ISC

Last publish

Collaborators

  • onlyjsmith
  • mosaic141688