Client Storage
- Bulletproof Client storage functions,
localStoragewith fall-back tocookies; - Unicode values and keys support;
- Works in browser with disabled
localStorageandcookies; - 100% tests coverage.
Install:
npm install --save ClientStorage
Install Meteor:
# Via Atmosphere meteor add ostrio:cstorage
# Via NPM meteor npm install --save ClientStorage
Require:
1var ClientStorage = require('ClientStorage').ClientStorage;
ES6 Import (Meteor):
1import { ClientStorage } from 'meteor/ostrio:cstorage';
Usage:
Get
ClientStorage.get('key')- Read a record. If the key doesn't exist a null value will be returned.
Set
ClientStorage.set('key', value)- Create/overwrite a value in storage
Remove
ClientStorage.remove('key')- Remove a record
Has
ClientStorage.has('key')- Check whether a record exists, returns boolean value
Keys
ClientStorage.keys()- Returns an array of all storage keys
Empty
ClientStorage.empty()- Empty storage (remove all key/value pairs). Use with caution! (May remove cookies which was set not by you)
Use cookies only
To use cookies as a driver for ClientStorage create new instance of clientStorage (camel-case, first letter lower-case)
1var clientStorage = require('ClientStorage').clientStorage; 2var csCookies = new clientStorage('cookies');
or in ES6 (Meteor):
1import { clientStorage } from 'meteor/ostrio:cstorage'; 2let csLocalStorage = new clientStorage('cookies');
Use localStorage only
To use localStorage as a driver for ClientStorage create new instance of clientStorage (camel-case, first letter lower-case):
1var clientStorage = require('ClientStorage').clientStorage; 2var csLocalStorage = new clientStorage('localStorage');
or in ES6 (Meteor):
1import { clientStorage } from 'meteor/ostrio:cstorage'; 2let csLocalStorage = new clientStorage('localStorage');
Note: All instances shares same cookies and localStorage records!
Example:
1ClientStorage.set('locale', 'en'); // true 2ClientStorage.set('country', 'usa'); // true 3ClientStorage.set('gender', 'male'); // true 4 5ClientStorage.get('gender'); // male 6 7ClientStorage.has('locale'); // true 8ClientStorage.has('city'); // false 9 10ClientStorage.keys(); // ['locale', 'country', 'gender'] 11 12ClientStorage.remove('locale'); // true 13ClientStorage.get('locale'); // undefined 14 15ClientStorage.keys(); // ['country', 'gender'] 16 17ClientStorage.empty(); // true 18ClientStorage.keys(); // [] 19 20ClientStorage.empty(); // false