UNPKG

fluo

Version:

A prototype-based fork of the Reflux data flow library similar to Facebook Flux

141 lines (91 loc) 7.97 kB
# Changelog ## v1.0.3 * Added extended promise and async operation support to actions via `Publisher#resolve()`, `Publisher#reject()`, `Publisher#then()`. * Added `Publisher#listenOnce()`. ## v1.0.2 * Merged `Publisher#listenAndPromise()` with `Publisher#listen()` based on the return value of the registered callback. * Renamed internal variables in source and tests from `Reflux` to `fluo`. * Removed build results. Travis CI is being used from now on to automatically upload a release for every tag. ## v1.0.1 * Brought back the `sync: true` option of Actions which makes the functor call `#triggerSync()` instead of `trigger()`. The option is no longer configurable after Action instantiation. * Merged `AsyncAction` with `Action`; there really was no advantage for having them both. ## v1.0.0 * Forked and renamed to **Fluo**. * Core refactored to a standard prototype-based model. * The inheritance between fluo components is now clear. * It is now possible to leverage the `class` syntax provided by ES6 and CoffeeScript. * Actions are now `instanceof fluo.Action` while remaining callable functors. * The `ListenerMethods` and `PublisherMethods` objects were turned into proper prototypes (`Listener.prototype` and `Publisher.prototype` respectively). * `Publisher#trigger()` renamed to `#triggerSync()`, `Publisher#triggerAsync()` renamed to `#trigger()`. The default functor behavior is async. * `Publisher#eventLabel` renamed to `#eventType`; `Action#actionName` renamed to `#actionType`. * Errors about overriding prototype methods are no longer thrown. It is discouraged though to override without sub-classing. * Removed the possibility to simply set `#preEmit()` and any other properties on `Action` instances after creation. This is due to the action being a functor. It can sill be done via `Object.getPrototypeOf(action).preEmit = …`. * Removed the `mixins` option of stores. If a user really wants to use this pattern, they can do it after instantiation. * `ListenerMixin` and `PublisherMixin` were deprecated. ## Reflux The following is the original CHANGELOG of the Reflux project. Check for latest changes on the [milestones page](https://github.com/spoike/refluxjs/milestones). ### v0.2.5 * Added `connectFilter` [#222](https://github.com/spoike/refluxjs/pull/222) * A lot of clarifications and typo fixes in documentation. [#147](https://github.com/spoike/refluxjs/pull/147), [#207](https://github.com/spoike/refluxjs/pull/207), [#208](https://github.com/spoike/refluxjs/pull/208), [#209](https://github.com/spoike/refluxjs/pull/209), [#211](https://github.com/spoike/refluxjs/pull/211), and [#214](https://github.com/spoike/refluxjs/pull/214) ### v0.2.4 * Promisable actions [#185](https://github.com/spoike/refluxjs/issues/185) * Fixed IE8 bug [#202](https://github.com/spoike/refluxjs/issues/202), [#187](https://github.com/spoike/refluxjs/issues/187) * Plus other various fixes: [#201](https://github.com/spoike/refluxjs/issues/201), [#200](https://github.com/spoike/refluxjs/issues/202), [#183](https://github.com/spoike/refluxjs/issues/183), and [#182](https://github.com/spoike/refluxjs/issues/182) ### v0.2.3 * Store mixins [#124](https://github.com/spoike/refluxjs/pull/124) ### v0.2.2 * Fixed circular dependency issue that caused browserify builds not to work as expected [#129](https://github.com/spoike/refluxjs/issues/129) [#138](https://github.com/spoike/refluxjs/issues/138) * Bind store methods before init() method executes. [#168](https://github.com/spoike/refluxjs/issues/168) * Clarify the meaning of "FRP". [#161](https://github.com/spoike/refluxjs/issues/161) * Child (async) actions and promise handling [#140](https://github.com/spoike/refluxjs/issues/140) ### v0.2.1 * IE8 trailing comma bug fix [#145](https://github.com/spoike/refluxjs/pull/145) * Multiple use of Reflux.connect bug fix [#142](https://github.com/spoike/refluxjs/issues/142), [#143](https://github.com/spoike/refluxjs/pull/143) * Added .npmignore file, removing non-essential files from `npm install` [#125](https://github.com/spoike/refluxjs/issues/125) ### v0.2.0 * Breaking change: Set initial state before componentDidMount (in `Reflux.connect`) [#117](https://github.com/spoike/refluxjs/pull/117) * Allow extension of actions and stores (with `Reflux.ActionMethods` and `Reflux.StoreMethods`) [#121](https://github.com/spoike/refluxjs/pull/121) * Automatically bind store methods [#100](https://github.com/spoike/refluxjs/pull/100) * Bugfix: Connect and listenermixin combo [#131](https://github.com/spoike/refluxjs/pull/131) ### v0.1.14, v0.1.15 * You may now stop listening to joined listenables individually [#96](https://github.com/spoike/refluxjs/pull/96). * Reflux will now throw an error if you attempt to join less than two listenables [#97](https://github.com/spoike/refluxjs/pull/97). ### v0.1.13 * Added more join methods, i.e. `listener.joinLeading`, `listener.joinTrailing`, `listener.joinConcat` and `listener.joinStrict` [#92](https://github.com/spoike/refluxjs/pull/92). * Actions can be set to sync or async trigger [#93](https://github.com/spoike/refluxjs/pull/93). * And various bug fixes. Check the [milestone page](https://github.com/spoike/refluxjs/issues?q=milestone%3A0.1.13+is%3Aclosed). ### v0.1.12 * Bug fixes. Check the [milestone page](https://github.com/spoike/refluxjs/issues?q=milestone%3A0.1.12+is%3Aclosed). ### v0.1.9, v0.1.10, v0.1.11 * Critical bug fixes. See [#80](https://github.com/spoike/refluxjs/issues/80), [#81](https://github.com/spoike/refluxjs/issues/81), and [#82](https://github.com/spoike/refluxjs/issues/82). ### v0.1.8 * Added `Reflux.connect`, `Reflux.listenTo`, `listenToMany` conveniences. See [#63](https://github.com/spoike/refluxjs/pull/63) and [#75](https://github.com/spoike/refluxjs/pull/75) * Stores may now use a `listenables` prop [#63](https://github.com/spoike/refluxjs/pull/63) to automatically register actions to callbacks * `preEmit` may now map or transform the action payload by returning something. See [58](https://github.com/spoike/refluxjs/issues/58) and [#78](https://github.com/spoike/refluxjs/pull/78) * Reflux now exposes a `keep` for easier introspection on actions and stores [#56](https://github.com/spoike/refluxjs/issues/56) * Added mixin interfaces `ListenerMethods` and `PublisherMethods` making it possible for users to extend Reflux's actions and stores. See [#45](https://github.com/spoike/refluxjs/issues/45) ### v0.1.7 * Added support for initial data handling [#49](https://github.com/spoike/refluxjs/pull/49) * Added CHANGELOG.md [#50](https://github.com/spoike/refluxjs/issues/50) * Bug: Unregistered actions could not be reregistered [#47](https://github.com/spoike/refluxjs/pull/47) ### v0.1.6 * Added possibility to join actions and stores with `Reflux.all` [#27](https://github.com/spoike/refluxjs/issues/27), [#28](https://github.com/spoike/refluxjs/pull/28) * Added circular dependency check [#26](https://github.com/spoike/refluxjs/issues/26) ### v0.1.5 * Bug fix ### v0.1.4 * Action functors are now deferred [#22](https://github.com/spoike/refluxjs/issues/22), [#23](https://github.com/spoike/refluxjs/pull/23) * Added web tests using testling.ci [#20](https://github.com/spoike/refluxjs/pull/20) ### v0.1.3 * Added hooks `preEmit` and `shouldEmit` for actions [#16](https://github.com/spoike/refluxjs/issues/16) * Various bug fixes and `.jshintrc` file created for grunt build ### v0.1.2 * Added `ListenerMixin` useful for React components [#7](https://github.com/spoike/refluxjs/issues/7) * Using `eventemitter3` instead [#4](https://github.com/spoike/refluxjs/issues/4) ### v0.1.1 * Added convenience function to create multiple actions [#6](https://github.com/spoike/refluxjs/issues/6) * Bug: createStore's unsubscribe function was broken [#5](https://github.com/spoike/refluxjs/issues/5) ### v0.1.0 * Removed lodash dependency [#1](https://github.com/spoike/refluxjs/issues/1)