Package Exports
- data-store
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (data-store) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
data-store

Easily get, set and persist config data.
Install
Install with npm
$ npm i data-store --save
Usage example
var Store = require('data-store');
// default cwd is `~/data-store/`
var store = new Store('app', {cwd: 'actual'});
store
.set('a', 'b')
.set('c.d', {e: 'f'})
.set('c.d', {g: 'h'});
console.log(store.get('c.d'));
//=> { e: 'f', g: 'h' }
console.log(store.get());
//=> { name: 'app', data: { a: 'b', c: { d: { e: 'f', g: 'h' } } } }
console.log(store.data);
//=> { a: 'b', c: { d: { e: 'f', g: 'h' } } }
API
Store
Initialize a new Store
with the given name
and options
.
Params
name
{String}: Store name.options
{Object}
cwd
{String}: Current working directory for storage. If not defined, the user home directory is used, based on OS. This is the only option currently, other may be added in the future.
Example
var store = new Store('abc');
//=> '~/data-store/a.json'
var store = new Store('abc', {cwd: 'test/fixtures'});
//=> './test/fixtures/abc.json'
.set
Assign value
to key
and save to disk. Can be a key-value pair or an object.
Params
key
{String}val
{any}: The value to save tokey
. Must be a valid JSON type: String, Number, Array or Object.returns
{Object}Store
: for chaining
Example
// key, value
store.set('a', 'b');
//=> {a: 'b'}
// extend the store with an object
store.set({a: 'b'});
//=> {a: 'b'}
// extend the the given value
store.set('a', {b: 'c'});
store.set('a', {d: 'e'}, true);
//=> {a: {b 'c', d: 'e'}}
// overwrite the the given value
store.set('a', {b: 'c'});
store.set('a', {d: 'e'});
//=> {d: 'e'}
.union
Add or append an array of unique values to the given key
.
Params
key
{String}returns
{any}: The array to add or append forkey
.
Example
store.union('a', ['a']);
store.union('a', ['b']);
store.union('a', ['c']);
store.get('a');
//=> ['a', 'b', 'c']
.get
Get the stored value
of key
, or return the entire store if no key
is defined.
Params
key
{String}returns
{any}: The value to store forkey
.
Example
store.set('a', {b: 'c'});
store.get('a');
//=> {b: 'c'}
store.get();
//=> {b: 'c'}
.has
Returns true
if the specified key
has truthy value.
Params
key
{String}returns
{Boolean}: Returns true ifkey
has
Example
store.set('a', 'b');
store.set('c', null);
store.has('a'); //=> true
store.has('c'); //=> false
store.has('d'); //=> false
.hasOwn
Returns true
if the specified key
exists.
Params
key
{String}returns
{Boolean}: Returns true ifkey
exists
Example
store.set('a', 'b');
store.set('b', false);
store.set('c', null);
store.set('d', true);
store.hasOwn('a'); //=> true
store.hasOwn('b'); //=> true
store.hasOwn('c'); //=> true
store.hasOwn('d'); //=> true
store.hasOwn('foo'); //=> false
.save
Persist the store to disk.
Params
dest
{String}: Optionally define an alternate destination file path.
Example
store.save();
.del
Delete keys
from the store, or delete the entire store if no keys are passed.
Note that to delete the entire store you must pass {force: true}
Params
keys
{String|Array|Object}: Keys to remove, or options.options
{Object}
Example
store.del();
// to delete paths outside cwd
store.del({force: true});
Related
- assign-value: Extend a value or deeply nested property of an object using object path notation.
- get-value: Use property paths (
a.b.c
) to get a nested value from an object. - has-own-deep: Returns true if an object has an own, nested property using dot notation paths ('a.b.c').
- has-value: Returns true if a value exists, false if empty. Works with deeply nested values using… more
- set-value: Create nested values and any intermediaries using dot notation (
'a.b.c'
) paths. - union-value: Set an array of unique values as the property of an object. Supports setting deeply… more
Contributing
Pull requests and stars are always welcome. For bugs and feature requests, please create an issue
Running tests
Install dev dependencies:
$ npm i -d && npm test
Author
Jon Schlinkert
License
Copyright © 2015 Jon Schlinkert Released under the MIT license.
This file was generated by verb-cli on August 01, 2015.