Kingly Versions Save

Zero-cost state-machine library for robust, testable and portable user interfaces (most machines compile ~1-2KB)

0.28.0

4 years ago

Google Chrome has finished reviewing the devtool, available for download here: https://chrome.google.com/webstore/search/courtesan

Preliminary stuff (not much in terms of screenshots, icons and so on) but the functionality is there.

Can be used with Kingly through the settings parameter of Kingly createStateMachine machine factory. Details in the documentation

v0.26.1

4 years ago
  • separated empty outputs from absence of outputs in preparation: this allows to distinguish between subtle cases, and is useful when used with the devtool (still pending validation by google) and the compiler
  • empty outputs: []
  • absence of ouputs: null

Also removed deprecated tests, still lots of unused code to clean in the source code. That is not a priority though as it is now possible to write the graph with the yed graph editor, then trace it with the devtool, and compile it down to vanilla ES5 (maybe ES3, not sure) JS for use in production. Code quality of the library is thus not a key feature.

Deprecated:

  • entry functions
  • tracing functions (achieved with devtool)

Pending decision:

  • web component factory (will probably stay in the library in the end from cross-framework usage)

v0.25

4 years ago

This new release adds the tracing functionality that works in connection with a dev tool that is a Chrome extension (pending review by google, which may take two weeks).

The devtool allows to see inputs that enter the machine and outputs that gets out. Additionally, intermediate events allow to trace the machine as it realizeds it computation. The state of the machine can be browsed through with the tab panel on the right. The tab panel also allow to look up in detail miscellaneous details about the message that was sent to the dev tool.

v0,24

4 years ago
  • Solved issue #5

v0.19

4 years ago

The library is now named Kingly. Other changes:

  • COMMAND_RENDER is now exported by Kingly. This was exported by react-state-driven and vue-state-driven previously and created a undesired dependency with React or Vue.
  • the API for makeWebComponentFromFsm has changed. The eventHandler must now have a Subject interface (similar to Rx.Subject)
  • updateState is now passed as a part of the machine definition rather than in settings
  • changes in warning, info and error messages

v1.0-rc1

5 years ago
  • The state machine is a simple function
  • contracts have been implemented and can be activated optionally through settings
    • this is done by dependency injection and as such does not affect the size of the bundle
  • decorating, trace, and transducer factory functions have been tested against contracts and defended against errors coming from user provided functions
    • such functions will generate useful error messages when they throw
    • if such functions do not return values of an expected type, the user will be warned
  • updated readme
  • moved testing API into separate package
  • miscellaneous bug fixes
  • tested against associated vue-state-driven integration

0.11.0

5 years ago

Biggest changes:

  • dropped the object interface for a functional one
    • yield disappears. The machine is now just a stateful function
  • machine now takes a configurable initial control state
  • testing utilities are separated into their own package : state-transducer-testing
  • helper function to make web component from a machine
    • only use lightly custom elements v1, and not shadow DOM in order to limit polyfill for older browsers

Also miscellaneous bug fixes.

0.7.2

5 years ago
  • history states, deep and shallow
  • compound states
  • eventless transitions
  • configurable state library (JSON patch, immutable, etc.)
  • streaming machine with configurable streaming library
  • traceable machines
  • automatic test generation between the initial state and a vertex!