camo
Version:
A class-based ES6 ODM for Mongo-like databases.
238 lines (176 loc) • 9.29 kB
Markdown
## 0.12.3 (2016-11-04)
Bugfixes:
- Merged PR that allows changes to persist in `postValidate` and `preSave` hooks ([#85](https://github.com/scottwrobinson/camo/pull/85)). Fixes [#43](https://github.com/scottwrobinson/camo/pull/43).
## 0.12.2 (2016-06-27)
Bugfixes:
- Merged PR that prevents methods from being serialized in `toJSON()` ([#79](https://github.com/scottwrobinson/camo/pull/79))
## 0.12.1 (2016-03-02)
Features:
- Updated README to warn about frequently changing API
- Added Contributing and Contact sections to README
Bugfixes:
- Fixed issue that prevented `save()` from being aborted when `Promise.reject` was returned in a hook ([#57](https://github.com/scottwrobinson/camo/issues/57))
- Replaced all `.id` references to `._id` in README
- Fixed issue where schema types `Array` and `[]` were not properly being validated ([#53](https://github.com/scottwrobinson/camo/issues/53))
- In README, changed an incorrect reference of `.findMany()` to `.find()` ([#54](https://github.com/scottwrobinson/camo/issues/54))
- Fixed issue where updated nested data wasn't returned when using `.findOneAndUpdate()` with NeDB ([#55](https://github.com/scottwrobinson/camo/issues/55))
## 0.12.0 (2016-02-24)
Features:
- Added support for sorting with multiple keys ([#22](https://github.com/scottwrobinson/camo/issues/22))
- Added support for accepting strings as Dates ([#46](https://github.com/scottwrobinson/camo/issues/46))
- Deprecated `loadMany`, `loadOne`, `loadOneAndUpdate`, and `loadOneAndDelete` in favor of `find`, `findOne`, `findOneAndUpdate`, and `findOneAndDelete`, respectively ([#37](https://github.com/scottwrobinson/camo/issues/37))
- Added documentation on transpiler support for Camo
Bugfixes:
- Changed 'schema({})' to 'this.schema({})' in README since original throws ReferenceError ([#52](https://github.com/scottwrobinson/camo/issues/52))
## 0.11.4 (2016-01-19)
Bugfixes:
- Fixed issue with saving/loading deeply nested embedded documents ([#35](https://github.com/scottwrobinson/camo/issues/35))
- Removed `_id` and `_schema._id` from `EmbeddedDocument` class ([#31](https://github.com/scottwrobinson/camo/issues/31))
- Allow user to specify a custom _id ([#29](https://github.com/scottwrobinson/camo/issues/29))
## 0.11.3 (2015-12-29)
Features:
- Added new `ValidationError` object
Bugfixes:
- Improved some validation tests
- Fixed min validation
- Fixed validation for array of embedded documents
- Moved `collectionName` method to `BaseDocument` so `EmbeddedDocument` can use it ([#26](https://github.com/scottwrobinson/camo/issues/26))
- Deprecated `id` alias from document object ([#20](https://github.com/scottwrobinson/camo/issues/20))
- Fixed serialization test for MongoDB IDs
## 0.11.2 (2015-12-15)
Bugfixes:
- Fixed issue with running 'canonicalize' tests on travis-ci
## 0.11.1 (2015-12-15)
Bugfixes:
- Removed unused `harmony-reflect` dependency
## 0.11.0 (2015-12-15)
Features:
- `--harmony-proxies` flag is no longer required
- Class names now declared in `static collectionName()`. Declaration through constructor is depracated ([#16](https://github.com/scottwrobinson/camo/issues/16))
- Added new `required` schema property ([#18](https://github.com/scottwrobinson/camo/issues/18) and [#19](https://github.com/scottwrobinson/camo/pull/19))
Bugfixes:
- Fixed some inconsistencies with `id` aliasing (partial fix to [#20](https://github.com/scottwrobinson/camo/issues/20))
## 0.10.0 (2015-11-12)
Features:
- Added support for setting the 'unique' index on a field
- Added support for specifying which reference fields should be populated in `loadOne()` and `loadMany()`
Bugfixes:
- Fixed issue in `isNativeId` where we weren't returning a proper Boolean.
## 0.9.1 (2015-11-06)
Features:
- Added support for testing in travis-ci.org
Bugfixes:
- Fixed issue #10 where IDs in queries had to be ObjectId. Now string IDs are automatically cast to ObjectId.
## 0.9.0 (2015-10-30)
Features:
- Added support for `sort` option on `.loadMany()`
- Added support for `limit` option on `.loadMany()`
- Added support for `skip` option on `.loadMany()`
- Added `.toJSON()` to `Document` and `EmbeddedDocument` for serialization
- Updated 'engines' property to '>=2.0.0' in package.json
Bugfixes:
- Fixed issue #14 where `Document`s couldn't be initialized with an array of `EmbeddedDocument` objects via `.create()`
## 0.8.0 (2015-10-12)
Features:
- Added support for custom validation on schemas via `validate` property
Bugfixes:
- Fixed issue #9 where no member values could be set as `undefined`
## 0.7.1 (2015-08-21)
Bugfixes:
- Fixed issue #8 where virtual setters were not used on initialization
- `loadMany()` now loads all documents if query is not provided
- `deleteMany()` now deletes all documents if query is not provided
## 0.7.0 (2015-08-18)
Features:
- Added `loadOneAndUpdate` static method to `Document` class
- Added `loadOneAndDelete` static method to `Document` class
## 0.6.0 (2015-08-10)
Features:
- Added in-memory support for NeDB
- Added regex validator to `Document`
## 0.5.7 (2015-08-06)
Bugfixes:
- Fixed issue where `schema()` wasn't canonicalizing schema definitions.
- Updated README to show an example of using `schema()`.
## 0.5.6 (2015-07-20)
Features:
- README additions
- New test for overriding schemas
## 0.5.5 (2015-07-15)
Bugfixes:
- Fixed issue where _id was being reassigned in Mongo, and fixed issue with populating references in Mongo.
- Fixed issue with Mongo driver where reference validation checks failed.
- Fixed test Issues.#4 for when running in Mongo.
## 0.5.4 (2015-07-09)
Bugfixes:
- Fixed issue where `Date`s were saved in different formats (integers, `Date` objects, etc). Added way to canonicalize them so all dates look the same in the DB and are also loaded as Date objects.
## 0.5.3 (2015-07-01)
Bugfixes:
- Fixed issue in `.loadMany()` where references in arrays were getting loaded too many times. ([#4](https://github.com/scottwrobinson/camo/issues/4)).
- Added test in issues.test.js
- Fixed issue in `.loadMany()` where muliple references to the same object were only getting loaded once. ([#5](https://github.com/scottwrobinson/camo/issues/5)).
- Added test in issues.test.js
## 0.5.2 (2015-06-30)
- Version bump, thanks to NPM.
## 0.5.1 (2015-06-30)
Bugfixes:
- Fixed validation and referencing so `Document`s can be referenced by their object or ID.
## 0.5.0 (2015-06-26)
Features:
- Exposed `getClient()` method for retrieving the active Camo client.
- Added `options` parameter to `connect()` so options can be passed to backend DB client.
- Static method `Document.fromData()` is now a private helper method. Static method `.create()` should be used instead.
Bugfixes:
- In `Document._fromData()`, added check to see if ID exists before assigning
- Changed `BaseDocument._fromData()` so it returns data in same form as it was passed.
+ i.e. Array of data returned as array, single object returned as single object.
- Fixed bug where assigning an array of Documents in `.create()` lost the references.
- Stopped using the depracated `_.extend()` alias. Now using `_.assign()` instead. ([#1](https://github.com/scottwrobinson/camo/issues/1)).
- Fixed `get` and `set` issue with Proxy ([#3](https://github.com/scottwrobinson/camo/issues/3)).
## 0.4.0 (2015-06-22)
Features:
- Changed `.isModel()` to `.isDocument()`.
- Added `EmbeddedDocument` class and tests.
+ The following features work with `EmbeddedDocument`s:
= Schema options: default, min, max, type, choices
= All types supported in `Document` also work in `EmbeddedDocument`
= Array of `EmbeddedDocument`s
= Pre/post validate, save, and delete hooks
## 0.3.2 (2015-06-19)
Bugfix:
- Added forked version of `harmony-reflect`. Only difference is it uses a global to ensure it runs only once.
## 0.3.1 (2015-06-19)
Bugfix:
- Moved Proxy/Reflect shim to index. Seems to fix problem where shim broke Proxies (even worse).
## 0.3.0 (2015-06-18)
Features:
- Added support for MongoDB using [node-mongodb-native](https://www.npmjs.com/package/mongodb) as the backend.
- Added `.toCanonicalId()` and `.isNativeId()` to `DatabaseClient` and its child classes.
## 0.2.1 (2015-06-17)
- README fix.
## 0.2.0 (2015-06-17)
Features:
- Added the following Document hooks:
- `preValidate()`
- `postValidate()`
- `preSave()`
- `postSave()`
- `preDelete()`
- `postDelete()`
## 0.1.1 (2015-06-17)
Features:
- Updated README to include 'javascript' declaration for syntax highlighting.
- Added 'homepage' to package.json.
- Added 'repository' to package.json.
- Added 'email' to 'author' in package.json.
## 0.1.0 (2015-06-17)
Features:
- Minor version bump.
- No longer need to use `.schema()` in Document subclass. Now all public variables (any variable not starting with an underscore) are used in the schema.
- Implemented `.count()` in Document, Client, and NeDbClient to get Document count without retrieving data.
- Added `options` parameter to `.loadOne()` and `.loadMany()` to specify whether references should be populated.
- Added support for circular dependencies.
- Added README.
- Added CHANGELOG.
## 0.0.1 (2015-06-15)
Initial release.