Skip to content

Releases: brucou/kingly

Devtool official release

11 May 00:13
Compare
Choose a tag to compare

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

Update to prepare for compiler release

06 May 03:30
Compare
Choose a tag to compare
Pre-release
  • 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)

Dev tool

02 May 20:48
Compare
Choose a tag to compare
Dev tool Pre-release
Pre-release

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.

Bug fixes

12 Apr 23:14
Compare
Choose a tag to compare
  • Solved issue #5

Change of name

10 Jun 19:21
Compare
Choose a tag to compare
Change of name Pre-release
Pre-release

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

Transducer, trace and contracts

12 Mar 02:29
Compare
Choose a tag to compare
Pre-release
  • 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

Getting closer to v1.0

08 Feb 03:24
Compare
Choose a tag to compare
Pre-release

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.

minimum viable version umd dist

05 Sep 09:05
Compare
Choose a tag to compare
Pre-release
  • 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!