mekanika/query

View on GitHub
HISTORY.md

Summary

Maintainability
Test Coverage
0.10.1 - 6 April 2015
======

Force overwrite botched publish 0.10.0. Identical release.

Added:

- `.ids()` method to add ids (handles empty and undefined)
- Enable setting middleware by passing array of fns
- `.raw(qe)` manually setting a raw Qe on chainable method

Fixed:

- Supports nested match conditions `.mc( mc )`
- Post middleware chains pass `(err, res)` correctly

Changed:

- `.body()` handles empty and undefined values
- Enable calling `.match(obj)` with a raw object (not just MC)

Internal:

- Added `.editorconfig` http://editorconfig.org



0.9.0 - 10 February 2015
=====

Added: 

- Support for the `any` match operator

Changed:

- **BREAKING** Middleware hooks now chain with `next()` (see docs)

Removed:

- `.toObject()` method in favour of direct access to `.qe` property

Internal:

- Build system switched to `npm run` from Makefile
- Updated dev dependencies



0.8.0 - 9 December 2014
=====

Changed:

- License to MPLv2

Internal:

- Update dev dependencies



0.7.0 - 9 November 2014
=====

Supporting Qe 0.6.0

Changed:

- `.populate`, `.update`, `.select` to 0.6.0 spec
- Rename `.from|resource()` to `.on()`
- References to `Qe`, `qe` and Query envelopes

Added:

- Nested matching using `MatchContainer` and `query.mc(op, mos)`
- `.body()`, `.do()` direct setting methods

Internal:

- Major Readme docs overhaul



0.6.0 - 6 November 2014
=====

Massive update to support changes in latest Qo spec and to simplify library

Changed:

- Query object core naming and features to match Qo 0.3.0 conventions
  - `content` to `body`
  - `identifiers` to `ids`
  - `display` object flattened out to `limit` and `offset` at root level
  - `fields` to `include`
  - `excludeFields` to `exclude`
  - `modifiers` to `update`
  - `constraints` to `match`
  - `order` to `sort`
  - Sorting is done by strings (not objects) eg. "-age name"
  - removed `idField` descriptor
  - removed `rename` modifier/update type
- Match and Update object structures to match Qo 0.5.0 conventions
  - `{$field:{$op:$value}}`
- Qo is stored as `.qo` property on each `query#` instance
- Adapters and middleware are passed a POJO `Qo` rather than a query# instance
- Blank Qo is now valid (Qo 0.4.0)

Added:

- `.meta(obj)` for adding to meta field
- `.populate( field, key, query )` support (Qo 0.5.0)

Removed:

- `save` as a supported action
- `.skip()` alias for offset
- `.select()` in favour of the new `.include`
- `.use( adapterString )` to "lookup" adapters from an "adapterClass"
- `.adapterClass( acl )` previously used as an 'adapter accessor'



0.5.0 - 14 July 2014 (The "No Zalgo" release)
=====

Changed:

- **NO ZALGO**: Delegate callback is always async. Th͏e Da҉rk Pońy Lo͘r͠d HE ́C͡OM̴E̸S
- Callback parameter in `.done(cb)` delegate is now optional
- `.remove(ids)` action uses identifiers field rather than constraints
- Executing `.done(cb)` with no adapter now includes an error in `cb(err, qry)`



0.4.0 - 7 July 2014
=====

Added:

- Support for `all` action middleware. eg. `pre( fn )` applies hook to all actions.

Removed:

- `mekanika-utils.map` dependency. Using Array#map

Internal:

- Switched over to Chai.expect for test suite
- Removed blanket from npm scripts



0.3.0 - 17 June 2014
=====

Changed:

- Removed `.delete()` method alias (sticking with `remove()`)
- Modified default remove action string is now `remove`
- Test coverage generated by `istanbul`

Updated:

- Module dependencies



0.2.0 - 9 December 2013
=====

- Constraints related to ids are converted prior to query
- `utils.isEmpty` checks objects as well as arrays
- License update to LGPL3+



0.1.0
=====

- Initial release of stable query object structure and API