mirror of https://github.com/seald/nedb
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
137 lines
6.4 KiB
137 lines
6.4 KiB
# Changelog
|
|
|
|
All notable changes to this project will be documented in this file.
|
|
|
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
and this project adheres
|
|
to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
|
|
## [3.0.0] - Unreleased
|
|
### Added
|
|
- Added a `Promise`-based interface.
|
|
- The JSDoc is now much more exhaustive.
|
|
- An auto-generated JSDoc file is generated: [API.md](./API.md).
|
|
- Added `Datastore#dropDatabaseAsync` and its callback equivalent.
|
|
|
|
### Changed
|
|
- The `Datastore#update`'s callback has its signature slightly changed. The
|
|
`upsert` flag is always defined either at `true` or `false` but not `null` nor
|
|
`undefined`, and `affectedDocuments` is `null` when none is given rather than
|
|
`undefined` (except when there is an error of course).
|
|
- In order to expose a `Promise`-based interface and to remove `async` from the dependencies, many internals have been either rewritten or removed:
|
|
- Datastore:
|
|
- `Datastore#getCandidates` replaced with `Datastore#_getCandidatesAsync`;
|
|
- `Datastore#resetIndexes` replaced with `Datastore#_resetIndexes`;
|
|
- `Datastore#addToIndexes` replaced with `Datastore#_addToIndexes`;
|
|
- `Datastore#removeFromIndexes` replaced with `Datastore#_removeFromIndexes`;
|
|
- `Datastore#updateIndexes` replaced with `Datastore#_updateIndexes`;
|
|
- `Datastore#_insert` replaced with `Datastore#_insertAsync`;
|
|
- `Datastore#_update` replaced with `Datastore#_updateAsync`;
|
|
- `Datastore#_remove` replaced with `Datastore#_removeAsync`;
|
|
- Persistence:
|
|
- `Persistence#loadDatabase` replaced with `Persistence#loadDatabaseAsync`;
|
|
- `Persistence#persistCachedDatabase` replaced with `Persistence#persistCachedDatabaseAsync`;
|
|
- `Persistence#persistNewState` replaced with `Persistence#persistNewStateAsync`;
|
|
- `Persistence#treatRawStream` replaced with `Persistence#treatRawStreamAsync`;
|
|
- `Persistence.ensureDirectoryExists` replaced with `Persistence#ensureDirectoryExistsAsync`;
|
|
- Cursor:
|
|
- `Cursor#_exec` replaced with `Cursor#_execAsync`;
|
|
- `Cursor#project` replaced with `Cursor#_project`;
|
|
- `Cursor#execFn` has been renamed to `Cursor#mapFn` and no longer supports a callback in its signature, it must be a synchronous function.
|
|
- Executor: it has been rewritten entirely without the `async`library.
|
|
- `Executor#buffer` & `Executor#queue` do not have the same signatures as before;
|
|
- `Executor#push` replaced with `Executor#pushAsync` which is substantially different;
|
|
- Storage modules : callback-based functions have been replaced with promise-based functions.
|
|
- Model module: it has been slightly re-written for clarity, but no changes in its interface was made.
|
|
|
|
## Deprecated
|
|
- Using a `string` in the constructor of NeDB is now deprecated.
|
|
- Using `Datastore#persistence#compactDatafile` is now deprecated, please use `Datastore#compactDatafile` instead.
|
|
- Using `Datastore#persistence#setAutocompactionInterval` is now deprecated, please use `Datastore#setAutocompactionInterval` instead.
|
|
- Using `Datastore#persistence#stopAutocompaction` is now deprecated, please use `Datastore#stopAutocompaction` instead.
|
|
|
|
## Removed
|
|
- The option for passing `options.nodeWebkitAppName` to the Datastore and the Persistence constructors has been removed.
|
|
- `Persistence.getNWAppFilename`;
|
|
|
|
## [2.2.0] - 2021-10-29
|
|
### Added
|
|
- Include a `"react-native"` version (heavily inspired from [react-native-local-mongdb](https://github.com/antoniopresto/react-native-local-mongodb)).
|
|
|
|
## [2.1.0] - 2021-10-21
|
|
Thanks to [@eliot-akira](https://github.com/eliot-akira) for the amazing work on file streaming.
|
|
### Changed
|
|
- [implement file streaming of the database](https://github.com/seald/nedb/pull/5) like [a PR on the original repo](https://github.com/louischatriot/nedb/pull/463) did;
|
|
- internalize [`byline`](https://github.com/jahewson/node-byline) package because it is unmaintained.
|
|
- TypeScript typings inside the package.
|
|
|
|
## [2.0.4] - 2021-07-12
|
|
### Fixed
|
|
- switch back to an AVLTree instead of a BinarySearchTree like the original nedb to fix [#1](https://github.com/seald/nedb/issues/1).
|
|
- updated vulnerable dev dependency `ws`
|
|
|
|
## [2.0.3] - 2021-06-07
|
|
### Fixed
|
|
- no longer use `util` module for type verification as it is needed in the
|
|
browser, which would need a polyfill.
|
|
|
|
## [2.0.2] - 2021-05-26
|
|
### Fixed
|
|
- the `browser` field of the `package.json` no longer points to the bundled
|
|
minified version for the browser, but switches the `storage.js` and
|
|
`customUtils.js` to their browser version, just like the original repository
|
|
used to do.
|
|
|
|
## [2.0.1] - 2021-05-19
|
|
|
|
### Changed
|
|
|
|
- bump `@seald-io/binary-search-tree` to 1.0.2, which does not depend
|
|
on `underscore`;
|
|
- replace use of `underscore` by pure JS.
|
|
|
|
## [2.0.0] - 2021-05-18
|
|
|
|
This version should be a drop-in replacement for `nedb@1.8.0` provided you use
|
|
modern browsers / versions of Node.js since ES6 features are now used (such
|
|
as `class` and `const` / `let`).
|
|
|
|
### Changed
|
|
|
|
- Update `homepage` & `repository` fields in the `package.json`
|
|
- New maintainer [seald](https://github.com/seald/) and new package
|
|
name [@seald-io/nedb](https://www.npmjs.com/package/@seald-io/nedb);
|
|
- Added `lockfileVersion: 2` `package-lock.json`;
|
|
- Modernized some of the code with ES6 features (`class`, `const` & `let`);
|
|
- Uses [`standard`](https://standardjs.com/) to lint the code (which removes all
|
|
unnecessary semicolons);
|
|
- Updated dependencies, except `async` which stays at `0.2.10` for the moment;
|
|
- Stop including the browser version in the repository, and properly build it
|
|
with `webpack`;
|
|
- Uses `karma` to run the browser tests, and use npm to fetch versioned
|
|
dependencies rather than having hardcoded copies of the dependencies in the
|
|
repository;
|
|
- Internalized `exec-time` dependency for the benchmarks, because it was
|
|
unmaintained;
|
|
- Uses `@seald-io/binary-search-tree` rather than
|
|
unmaintained `binary-search-tree`;
|
|
|
|
### Removed
|
|
|
|
- Compatibility with old browsers and old version of Node.js that don't support
|
|
ES6 features.
|
|
- From now on, this package won't be published with `bower` as it became
|
|
essentially useless.
|
|
- Entries in the `browser` field of package.json don't include individual files,
|
|
only the bundled minified version, those files are still published with the
|
|
package.
|
|
|
|
### Security
|
|
|
|
- This version no longer
|
|
uses [a vulnerable version of `underscore`](https://github.com/advisories/GHSA-cf4h-3jhx-xvhq)
|
|
.
|
|
|
|
## [1.8.0] - 2016-02-15
|
|
|
|
See [original repo](https://github.com/louischatriot/nedb)
|
|
|