NoSQL local file storage with constraints -- unique keys, null check and indexing, akin to SQLite, with API similar to liteorm. Powered by TypeScript decorators and interface. Also with async event-emitter, thanks to emittery.
Can save as BSON with BsonAdapter.
Filtering and mapping with objects (in find, update, delete) is possible, thanks to lodash.
If you need typings, you can also enforce constraints.
Usage
import{Db}from"nocon-db";
(async()=>{
constdb=newDb("foo.nocon");
awaitdb.load();
constcol=db.collection<any>("bar");
awaitcol.insert({a:1,b:newDate()});
console.log(awaitcol.find({a:1}));
})();
You can even define Schema and unique keys. In this case, you will need to use Class decorators.