0.2.0 • Published 9 years ago

json-collections v0.2.0

Weekly downloads
1
License
MIT
Repository
github
Last release
9 years ago

JSON-Collections

JSON-Collections is a set of abstractions wrapping a familiar querying interface over JSON files. JSON files are the ideal prototyping storage mechanism since they are easily read and written to -- you can just open them your favorite editor. However, the usual interface to them is too low-level to work with quickly. This library aims to solve that.

Install

npm install --save json-collections

Usage

var Collection = require( 'json-collections' );
var Players = Collection( 'players', { dir: './data' });

Players
.add({
  id: 1,
  firstname: "Tom",
  lastname: "Brady",
  number: 12,
  team: "Patriots"
})
.add({
  id: 2,
  firstname: 'Peyton",
  lastname: 'Manning",
  number: 18,
  team: "Broncos"
})
.add({
  id: 3,
  firstname: "Rob",
  nickname: "Gronk",
  lastname: "Gronkowski",
  number: 87,
  team: "Patriots
})
.add({
  id: 4,
  firstname: "Wes",
  lastname: "Welker",
  number: 83,
  team: "Broncos"
});


// Find all the Patriots players
Players.findOne({ team: "Patriots" });

// Find players with a jersey # in the 80s, most likely a receiver
Players.find({
  number: function(n) { return 80 <= n && n <= 89; }
});

// Find a player named "Peyton Manning"
Players.findOne({firstname: "Peyton", lastname: "Manning"});

// Save our collection to disk.
Players.persist();

API

Collection

add(item) Adds an item to the collection.

size() Returns the number of items in the collection.

find(query) Returns a list of items that match the given query.

findOne(query) Returns the first model that matches the given query; otherwise, it returns undefined.

remove(query) Removes the items that match the given query from the collection.

persist() Writes the current state of the collection to disk.

toArray() Returns the collection as an array of models.

toJSON() Returns a pure data array of the items in the collection.

undo() Undoes any previous mutable actions such as add() or remove().

redo() Redoes any undo() calls. Does nothing if the last action was a mutating action such as remove() or add().

Model

get(key) Returns the value of the given key in the model.

set(key, value) Updates the key in the model with the given value.

set(dataObj) Merges the key value pairs in the given object with those in the model.

remove(key) Permanently removes a key from the model. This change is immediately reflected in the model's collection.

save() Saves the current state of the model to disk.

toJSON() Returns a pure JSON data version of the model.