fluo
Version:
A prototype-based fork of the Reflux data flow library similar to Facebook Flux
141 lines (91 loc) • 7.97 kB
Markdown
# 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)