The JavaScript Database, for Node.js, nw.js, electron and the browser
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.
 
 
nedb/CHANGELOG.md

6.4 KiB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[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.
  • 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 asynclibrary.
      • 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

[2.1.0] - 2021-10-21

Thanks to @eliot-akira for the amazing work on file streaming.

Changed

[2.0.4] - 2021-07-12

Fixed

  • switch back to an AVLTree instead of a BinarySearchTree like the original nedb to fix #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 and new package name @seald-io/nedb;
  • Added lockfileVersion: 2 package-lock.json;
  • Modernized some of the code with ES6 features (class, const & let);
  • Uses standard 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

[1.8.0] - 2016-02-15

See original repo