- Add:
catcher
option toAdapter
constructor to configure handler for rejected request promises - Change: Bump
proquest
andes6-promise
dependencies - Fix: Missing test dependencies and CircleCI config
- Fix: Compact the array returned by
Store#some
- Fix:
Events.off
no longer requires acontext
argument. This changes the API ofoff
, but does so to fix a bug with bothoff/1
andoff/2
.
- Add:
Store#remove
method to remove a model from the store without persistence - Add: Export the events module for external use.
- Change: Rename project from osteo.js to immunid.
- Change: Favor replacing
attributes
andbuckets
with new objects over mutating them. - Breaking Change:
Store.where
returns array of matching models instead of array of model ids. - Change:
Store#add
updates existing models instead of overwriting them - Remove:
Model
events in favor of emitting events from theStore
. - Fix:
Store#clear
properly removes a namespace from the store (useful for testing) - Fix: Clean up the public API exported by
Adapter
,Model
,Relation
, andStore
.
- Exporting with AMD, CommonJS, browser globals. This is not a breaking change, but significant enough to warrant a minor version bump.
- Ensure looked up models belong to the collection. The
lookup
method will create a new model if it fails to find a match. Previously it didn't always add the newly created model to the parent collection. - Preserve associated models when setting without association data.
- Create model relations during construction. This ensures that an empty associated collection is present even before additional data is fetched.
- Preserve previous created associated collections. Fetching associated models multiple times would clobber the currently loaded data.
- Remove all view and presenter related constructs. This is entirely backward incompatible! Osteo is purely focused on providing a data interface between backbone and modern APIs.
- Remove reliance on
Osteo.TRANSLATIONS
global. - Throw a translation error for missing key fragments.
- Collection#lookup method for simple identity map behavior.
- Association sideloading behaves identically between collections and models, even after fetching.
- Route loading and unloading uses promises.
- Override
toJSON
for collection serialization. - Fallback to response when parsing without root.
- Pass navigation options through
visit
. - Transplant collection root onto models during
set
. - FormView for convenient form handling and serialization.
- Accept a template passed to the view in options.
- Fix: Set root within the collection constructor.
- Fix: Default collection set operations to parse.
- Stop parsing undefined responses (i.e. from a 204 No Content).
- Wrap model toJSON in root when present. Fixes persisting models when the server expects a root object.
- Convenience method on
Router
for startingBackbone.history
idempotently. - Implement route reset functionality to clear singleton instances.
- Fix: prototype inheritance issues for
Route
,Presenter
,Cache
. - Fix: only call bound render if rendered.
- Prevent overwriting root on collection prototype
- Default collection model to Osteo.Model
- Simplify view option handling. Fixes initializing with undefined options.
- Handle model associations within
set
rather than the constructor. - Pass collection root settings through to model.
- Consistent, generic handling of view context.
- Simplify bound rendering for non-model objects.
- Rename
renderContext
to simplycontext
. - Generalize modal class naming.
- Simplify modal
cancel
event handlers. - Defer afterRender hook until call stack clears.
- Remove collection reset from render call.
- Sideload improvements for single root and single associations.
- Provide a
beforeRender
hook during view rendering. - Batched collection reset rendering for performance.
- Routing
pathFor
andvisit
methods. Makes navigation much more convenient. - Fix: View options didn't default to
{}
. - Factor model relation loading out of the constructor.
- Allow object or function route handlers.
- Automatic route unloading.
- All routes are treated as singletons.
- Support for automatically sideloading relations when instantiating models and parsing a collection.
- Package using a single IIFE.
- Add a router class with automatic route handling.
- Include a minified version, osteo.min.js.
- Configure for bower usage.
- Remove LoDash specific functions (anything not in Underscore).
- Raise an exception for missing templates.
- Add an i18n helper for translation lookup. Handlebars helper compatible.
- Initial release with ported base classes.