Warehouse
A JSON database with Models, Schemas, and a flexible querying interface. It powers the wildly successful static site generator Hexo.
Installation
$ npm install warehouse3.0 BREAKING CHANGE
In warehouse@3, the constructor has been changed from function declaration to class declaration or definition by class expression.
Derived classes of classes defined by class declarations and class expressions must also be defined in class declaration, class expression.
Anyone who created their own SchemaType will need to change.
const SchemaType = require('warehouse/schematype');
class MySchemaType extends SchemaType {
constructor(name, options = {}) {
super(name, Object.assign({ foo: 'foo' }, options));
}
}It changes to a class declaration or a class expression, but it does not need to deal with other than the definition of the constructor.
// It work!
MySchemaType.prototype.cast = function (value, data) {
let result = SchemaType.prototype.cast.call(this, value, data);
return result ? result : '';
}Usage
var Database = require('warehouse');
var db = new Database();
var Post = db.model('posts', {
title: String,
created: {type: Date, default: Date.now}
});
Post.insert({
title: 'Hello world'
}).then(function(post){
console.log(post);
});Test
$ npm test
Formed in 2009, the Archive Team (not to be confused with the archive.org Archive-It Team) is a rogue archivist collective dedicated to saving copies of rapidly dying or deleted websites for the sake of history and digital heritage. The group is 100% composed of volunteers and interested parties, and has expanded into a large amount of related projects for saving online and digital history.
