marionette.toolkit
A collection of opinionated Backbone.Marionette extensions for large scale application architecture.
v6.3.0
- Features
- Allow for the passing of options to
app.restart()
v6.2.0
- Features
- Updated underscore peer dependency version
- Throw a “Child app does not exist.” error on startChild app when child app undefined
v6.1.0
- Features
Component.showIn
now supports passing regionOptions
- Fixes
- When an app is stopped, the running events cache is now cleared correctly
viewEvents
now works if a view is shown during onBeforeShow
v6.0.1
- Add .npmignore
- Fix the build
v6.0.0
- Breaking Changes
- Replaced
Component
with a simpler API.
Component
now extends `Marionette.Application
- Removes
removeView
for show
- Adds
empty
for a safe destruction
- Adds
regionOptions
- A Component can now be shown multiple times
- Adds
setRegion
as a class method
- Removed the default export
MixinState
is now mixinState
- Tooling
- Modernized build/test tooling
v5.1.0
- Features
- Updated dependency versions
v5.0.0
- Breaking Changes
- Upgraded to Marionette v4
Toolkit
is no longer attached to Marionette.Toolkit
noConflict
was removed
- Removed bower
- For apps the state model and listeners are now only init’d during runtime available first in
onBeforeStart
without listeners.
triggerStart
now calls a finallyStart
method rather than triggerMethod
directly.
- Features
- childApps definitions now support
regionName
and getOptions
for boilerplate reduction.
- Updated underscore dependency range
- Added
toggleState
for a quick/clean set('foo', !get('foo'))
- Added
hasState
for a quick/clean this.getState().has('foo')
stopChildApp
now passes options along this.stopChildApp('appName', { foo: true })
Component
now exposes showView
so that the behavior can be overridden
restartWithParent
was added to modify the behavior of child apps during restart
- Fixes
- Child app was not removing correctly if startAfterInitialize: true
- Fixed clean up for various app view removal methods
v4.0.0
App
- Breaking Changes:
- Inits the state model before
before:start
and waits until before start
to delegate stateEvents
- Remove
getInitState
in favor of setting the state in before:start
setRegion
now returns the set region instance
destroy
now returns the app instance
destroy
now calls the Application prototype instead of Object
- Added
ViewEventsMixin
- Added
restart
and isRestarting
feature
start
now accepts a view option
- Added
setView
/ getView
feature allowing setting up children with the App’s API prior to showView
getRegion
now accepts an argument of a region name that is sugar for myApp.getView().getRegion('regionName')
showView
will show the “set” view if not passed a 1st argument
- Added
showChildView
/ getChildView
for interaction with the children of the App’s view
Component
- Breaking Changes:
viewEventPrefix
is now defaulted to false
stateEvents
is now delegated after initialize
this allows for setState in initialize
- Added
ViewEventsMixin
destroy
now returns the component instance
ChildAppMixin
- Breaking Changes:
startChildApp
/ stopChildApp
now return the child app instance
StateMixin
- Add
delegateStateEvents
/ undelegateStateEvents
for binding and unbinding stateEvents
ViewEventsMixin
- This new mixin adds Marionette.View like support for view event proxying
The API is analogous to childViewEventPrefix
, childViewEvents
and childViewTriggers
viewEventPrefix
defaulting to false allows for auto-proxying events from the view to the app or component
viewEvents
allows app or component handlers of view events
viewTriggers
triggers an event on the app or component when an event is triggered on the view
v3.1.0
App
- Fix
stateEvents
when passed at App instantiation
- Fix leaky lingering
stateEvents
after App stop
- Add App
showChildView
/ getChildView
v3.0.1
App
- Revert the stop event is triggered after clearing running events
v3.0.0
App
- Add
setRegion
to modify an App’s region
- All
region
to be passed to App#start
start
and stop
are no longer binded to the App
- the stop event is triggered after clearing running events
- General
- Support lodash v4
- Fixed an underscore import
v2.0.0
App
- The
App
now extends Marionette.Application
- Breaking Changes:
- Move
initState
from App
constructor to start
- Remove
restartState
functionality
- Add
getInitState
functionality to allow user to override and modify state on App start
- Remove
isDestroyed
functionality and isDestroyed
flag as this is now supported in Marionette.Application
- Allow user to pass in
StateModel
during App
initialization via ClassOptions
Component
- ViewClass now uses
Marionette.View
instead of deprecated Marionette.ItemView
- Add
getRegion
functionality
StateMixin
- Now uses
unbindEvents
instead of unbindEntityEvents
ChildAppsMixin
- Add
startChildApp
/stopChildApp
functionality
- Dependency
- Update and hard-set various dependencies, including Marionette, Backbone, and underscore
v1.0.0
StateMixin
:
- Replaces
StateClass
and is now a POJO instead of a Marionette.object
- Can now be mixed into any
Marionette.Object
or Marionette.View
stateDefaults
has been removed in favor of state being passed in options
hash
initState
adds ability to reinitialize state at any point during the life-time of Marionette.object
/ Marionette.View
resetStateDefaults
adds ability to reset state defined in defaults
destroyState
has been replaced by _destoryState
to privatize state deletion
ChildAppsMixin
:
- Now handles the adding and removing of childApps
- Adds functionality to share options with all children via
childAppsOptions
EventListenerMixin
now handles App
event-listener functionality
Marionette.Toolkit.MixinState
is a utiltiy function created to make it easy to mix StateMixin
into any Marionette.object
or Marionette.View
AbstractApp
has been removed and functionality moved into App
App
:
- Now extends Marionette.Object and not
StateClass
as AbstractApp
previously did
- It now mixes in
StateMixin
, ChildAppsMixin
, and EventListenerMixin
- An app can now be restarted and have it’s state reinitialized via
restart
_isDestroyed
is now the last action of destroy
method to align with Marionette v3
Component
:
- Now extends a
Marionette.Object
and not StateClass
- It now mixes in
StateMixin
- Stop passing entire
stateModel
to currentView
in favor of passing only attributes
- Improve
ES6
usage
- Dependency:
- Change
dependencies
to peerdependencies
- Update to
Node
v4 and several other updates
- Build process updates:
- Remove
_buildPackages
and NPM
deploy functionality as project will no longer publish packages individually
- Replace
Browserify
build process with Rollup
- Move from
JSHint
to ESLint
- Test and Documentation updates
v0.4.2
- Deprecate modularized classes.
v0.4.1
- Updated underscore and backbone dependencies.
- Small refactor to defaulting empty passed in
options
as an object.
v0.4.0
- Toolkit now exports
App
, Component
and StateClass
to npm separately.
StateModel
can now be defined as a function returning a Backbone.Model
- A
Component
ViewClass
can now be defined as a function returning a View
- If defining
childApps
as a function, it is now passed the same options
as initialize
- Prevent an
App
from destroying more than once
v0.3.0
- Revert 0.2.2 bugfix
- Returning Toolkit as a require object
var Toolkit = require('Marionette.Toolkit');
- Add name to childApp Instance and getName method
- Add bower.json definition
- Add appName to
DuplicateChildAppError
v0.2.2
- Bug Fix - Passed in options to child app on start
v0.2.1
- No code changes
- Fixed html test runner
- Documentation update with version bump for npm publish ¯_(ツ)_/¯
v0.2.0
- 100% Code Coverage @brentli1!!
Component
now mixes in the StateModel
instance as stateModel
instead of model
stateDefaults
are now on StateClass
and defaults
was removed from `Component
- Added
Toolkit.noConflict
App
now has a triggerStart
method that can be overridden to introduce async app starts
App
buildApp
is now easier to override
Component
buildView
is now easier to override
- You can now pass
options
to the Component
’s view via showIn
show
and renderView
Component
now attaches its view as currentView
instead of view
- bugfixes
v0.1.1
- Bug fixes for
StateClass
and App
- Tests for
App
v0.1.0