re-frame/CHANGES.md

140 lines
5.2 KiB
Markdown
Raw Normal View History

2015-04-26 21:38:37 +00:00
2015-05-28 13:15:47 +00:00
## v0.4.1 (2015-05-29)
2015-05-08 14:06:38 +00:00
2015-05-28 13:15:47 +00:00
Improvements:
- fix #65 - Detect mistaken use of middleware factories
- `examples/` now work with figwheel
2015-05-08 14:06:38 +00:00
2015-04-26 21:38:37 +00:00
## v0.4.0 (2015-05-04)
Headline:
- Exceptions in event handlers no longer break the router loop.
Previously, any exception in an event handler broke the app
permanently. This change will:
- improve the debugging experience with figwheel
- mean apps, in production, stand a chance of reporting UHE
to the user, and can perhaps even recover to a sane state.
- #53 Fix Logging And Error Reporting
You can now provide your own logging fucntions.
Further explanation [here](https://github.com/Day8/re-frame/wiki/FAQ#3-can-re-frame-use-my-logging-functions).
Deprecated:
- `log-ex` middleware is no longer needed. Simply remove its use.
Sometime in the last couple of months, changes to the CLJS
runtime meant that useful exceptions could escape go-loops, and
good stack traces appear (at least in Chrome).
2015-04-26 21:38:37 +00:00
New Features:
- #52 Add a way to purge redos `(dispatch [:purge-redos])`
When trying to recover from an UHE, do an undo to get back to the
last sane state, and then use this new feature to purge the
just-generated-redo.
2015-05-03 09:04:31 +00:00
- #43 Add ability to clear handlers (event and subs) via
two new API functions:
- re-frame.core/clear-sub-handlers!
- re-frame.core/clear-event-handlers!
Useful for those using the [ClojureScript fork](https://github.com/quile/component-cljs) of [Component](https://github.com/stuartsierra/component).
2015-04-24 12:17:43 +00:00
2015-04-26 21:38:37 +00:00
Experimental:
- #50 Add "reaction-like" middleware called `on-changes`.
Other:
- improve some comments in todomvc example
2015-04-26 21:38:37 +00:00
2015-03-05 23:47:28 +00:00
2015-04-21 14:18:31 +00:00
## v0.3.2 (2015-04-21)
2015-04-17 13:49:31 +00:00
2015-04-21 14:18:31 +00:00
Improvements:
- Fix #42 - Put in checks for dispatch-sync
- Fix #49 - add table of content and link to wiki for middleware
2015-04-21 14:22:54 +00:00
- Fix #46 - Minor typos fixed
2015-04-17 13:49:31 +00:00
2015-04-17 12:34:40 +00:00
## v0.3.1 (2015-04-18)
2015-04-15 14:13:11 +00:00
2015-04-17 12:34:40 +00:00
Various small improvements and bug fixes:
2015-04-17 12:51:03 +00:00
- log-ex middleware added to core api (it was a mistake that it was missing)
2015-04-17 12:34:40 +00:00
- modest improves to simple example. Better comments, layout, etc.
- the anonymous functions in standard middleware now have meaningful
names, which makes stack traces easier to understand.
2015-04-16 06:04:41 +00:00
- #24 - Fix missing paren in README
2015-04-15 14:26:49 +00:00
- #31 - Fix list formatting in README
2015-04-16 06:04:41 +00:00
- #32 - fix a broken wiki link
- #30 - Fix up the enrich docstring
2015-04-15 14:22:40 +00:00
2015-04-15 13:02:37 +00:00
## v0.3.0 (2015-04-15)
2015-03-13 22:47:31 +00:00
### Headline
2015-04-15 13:02:37 +00:00
- the middleware `after` and `enrich` now call the supplied function `f` with
both `db` and `v` (previously just `db`). Because javascript is so forgiving
about function arity, this change is backwards compatible.
2015-03-17 11:49:24 +00:00
- new event handler middleware `log-ex` for correctly printing handler stacktraces.
See [explanation](https://github.com/Day8/re-frame/wiki/Debugging-Event-Handlers#1-an-exception-is-thrown).
2015-03-13 22:47:31 +00:00
- ongoing improvements to the docs in Wiki
2015-03-13 22:47:31 +00:00
### Other
2015-04-15 13:02:37 +00:00
- move to reagent v0.5.0
2015-03-17 11:49:24 +00:00
- fix undo bug which could result in incorrect explanations.
2015-03-13 22:47:31 +00:00
- improve todomvc's use of localstorage
- experimental work with slimmer.js for testing
2015-04-15 13:02:37 +00:00
- correct README wiki links
2015-03-13 22:47:31 +00:00
- license.txt was incorrectly named previously
2015-03-05 23:47:28 +00:00
## v0.2.0 (2015-03-06)
### Breaking
Renames:
- `register-pure-handler` renamed to `register-handler` (and existing low level `register-handler` becomes `register-handler-base` but is not a part of the API).
- remove `apply-event` middleware and replace with similar `trim-v`
- rename `register-subs` to `register-sub` (avoid confusion over possible plurals)
- rename `set-max-undos` to `set-max-undos!`
Changes:
- `undoable` middleware is now a factory. Where before you used this `undoable`,
you must now use this `(undoable "some explanation")`. See further below.
### Headline
2015-03-06 02:02:30 +00:00
- exceptions in handler now reported more sanely via console.error.
(core.async really messes with a good stack)
2015-03-05 23:47:28 +00:00
- example `todomvc` available in examples folder.
- Wiki documentation is now more substantial.
2015-03-06 02:02:30 +00:00
- introduce new handler middleware: `debug`, `enrich` and `after`
2015-03-05 23:47:28 +00:00
### Other:
- exceptions in a go loop are a special type of hell. Improve the reporting of exceptions happening in event handlers.
- allow Middleware to be registered as a vector. data > functions > macros
- fix two bugs in undo implementation
- name licence file correctly, thanks to @smith
- fix typo in readme, thanks to @btheado
- Readme now admits to 200 lines of code, not 100.
- dispatch now explicitly returns nil
- travis integration (not that we have any tests currently)
### Details On Undo Changes
2015-03-06 02:02:30 +00:00
The undo/redo feature built into re-frame is now more functional
(at the cost of a breaking change).
2015-03-05 23:47:28 +00:00
2015-03-06 02:02:30 +00:00
There is now an explanation associated with each undo state describing
modification. This allows an app to inform the user what actions
they will be undoing or redoing.
2015-03-05 23:47:28 +00:00
2015-03-06 02:02:30 +00:00
Previously `undoable` was simply middleware, but it is now a middleware factory.
2015-03-05 23:47:28 +00:00
2015-03-06 02:02:30 +00:00
Essentially, that means you can't use it "plain" anymore, and instead you must
call it, like this `(undoable "Some explanation")`
2015-03-05 23:47:28 +00:00
The `explanation` provided to undoable must be either a `string` (static
2015-03-06 02:02:30 +00:00
explanation) or a function `(db event) -> string`, allowing you to customize
the undo message based on details of the event.