minimalistic, dead-simple object collection library
Go to file
Geoff Doty ce3bc6dc1f remove WIP status 2018-05-06 18:37:24 -04:00
dist single quotes to double quotes 2018-05-06 18:29:13 -04:00
docs removed count() from docs/tests 2018-05-06 18:28:53 -04:00
src single quotes to double quotes 2018-05-06 18:29:13 -04:00
test removed count() from docs/tests 2018-05-06 18:28:53 -04:00
.gitignore initial commit 2018-04-02 00:35:22 -04:00
.jshintrc bump 2018-05-06 18:29:32 -04:00
CONTRIBUTING.md updated docs 2018-04-02 07:21:19 -04:00
LICENSE updated docs 2018-04-02 07:21:19 -04:00
README.md remove WIP status 2018-05-06 18:37:24 -04:00
gulpfile.js added build task (gulp) 2018-04-07 00:12:28 -04:00
package-lock.json bump 2018-05-06 18:29:32 -04:00
package.json bump 2018-05-06 18:29:32 -04:00

README.md

Record.js

A minimalistic object collection library

Record.js aims to provide a lite, 2kb, zero-dependency collection utility to help build simple in-memory or local storage database of records. Records are stored as simple arrays.

Records can be exported to JSON, with no internals so you can import your data anywhere; via .dump()

Features

  • Tiny, only 2kb
  • Zero-Dependencies
  • Saves to LocalStorage (if available)
  • Saves to simple JSON
  • Browser or Nodejs compatible

Getting Started

create a new record collection (in-memory)

const pets = new Record();

add something to the collection

pets.add({"name": "Fluffy", "type": "cat"});
// [{"id": "123fk91j7", "name": "Fluffy", "type": "cat"}]

an id field is auto-generated if not provided, this allows easy record retrieval via

pets.find("123fk91j7");
// [{"id": "123fk91j7", "name": "Fluffy", "type": "cat"}]

you can also find items via properties like

pets.find({"type": "cat"});
// [{"id": "123fk91j7", "name": "Fluffy", "type": "cat"}]

and you can remove items via

pets.remove("123fk91j7");
// [{"id": "123fk91j7", "name": "Fluffy", "type": "cat"}]

so, no records, right?

pets.find();
// []

API

The public API is very simple, you really only need 3 methods: add, remove, and find.

Method Description
.add(object) Adds entry to collection and returns entry(s) added
`.remove(id object)`
`.find(id object)`
.dump() saves records to JSON file

Length (Count Records)

As Records are just plain JavaScript Arrays, you can use .length to determine the number of results returned, for example:

let cats = pets.find({"type": "cat"}); // []
cats.length;  // 0

NOTICE: find is special, changes based on what you pass in, an id, an object, or nothing at all

Options

Records.js constructor supports a few options passed in as an object

  • store: localStorage KEY to use. This actives localStorage if available
  • stores: TBD
  • debug: may logout useful information, maybe not;)
  • fields: TBD

Tests

npm test

Support

Please open an issue for support.

Contributing

Anyone is welcome to contribute, however, if you decide to get involved, please take a moment to review the guidelines, there minimalistic;)

License

MIT