- π· 100% Tests coverage;
- π¦ No external dependencies;
- πͺ Bulletproof persistent Client storage;
- γοΈ With Unicode support for values and keys;
- π¨βπ» With
String,Array,Object, andBooleansupport as values; - βΏ Works with disabled
localStorageandcookies; - βοΈ Meteor.js-specific docs
- π¦ Available via NPM and Atmosphere.
npm install --save ClientStorageconst ClientStorage = require('ClientStorage').ClientStorage;
const clientStorage = new ClientStorage();import { ClientStorage } from 'ClientStorage';
const clientStorage = new ClientStorage();clientStorage.get('key')- Read a record. If the key doesn't exist a undefined value will be returned;key- {String} - Record's key;
clientStorage.set('key', value[, ttl])- Create/overwrite a value in storage;key- {String} - Record's key;value- {String|[mix]|Boolean|Object} - Record's value (content);ttl- {Number} β [Optional] Record's TTL in seconds;
clientStorage.remove('key')- Remove a record;key- {String} - Record's key;
clientStorage.has('key')- Check whether a record exists, returns a boolean value;key- {String} - Record's key;
clientStorage.keys()- Returns an array of all storage keys;clientStorage.empty()- Empty storage (remove all key/value pairs). Use with caution! (May remove cookies which weren't set by you).
By default ClientStorage package handle selecting storage driver in the next order (descending priority):
localStoragecookiesjs(JS Object driven storage)
To alter priority pass "preferred driver" to new ClientStorage(driverName) constructor.
Pass cookies as an argument to new instance of ClientStorage:
const { clientStorage } = require('ClientStorage');
const cookiesStorage = new ClientStorage('cookies');
cookiesStorage.has('locale'); // false
cookiesStorage.set('locale', 'en_US'); // truePass localStorage as an argument to new instance of ClientStorage:
const { clientStorage } = require('ClientStorage');
const locStorage = new ClientStorage('localStorage');
locStorage.has('locale'); // false
locStorage.set('locale', 'en_US'); // truePass js (in-memory js object) as an argument to new instance of ClientStorage:
const { clientStorage } = require('ClientStorage');
const jsStorage = new ClientStorage('js');
jsStorage.has('locale'); // false
jsStorage.set('locale', 'en_US'); // trueNote: All instances are sharing same cookie and localStorage records!
const clientStorage = new (require('ClientStorage').ClientStorage);
clientStorage.set('locale', 'en'); // true
clientStorage.set('country', 'usa'); // true
clientStorage.set('gender', 'male'); // true
clientStorage.get('gender'); // male
clientStorage.has('locale'); // true
clientStorage.has('city'); // false
clientStorage.keys(); // ['locale', 'country', 'gender']
clientStorage.remove('locale'); // true
clientStorage.get('locale'); // undefined
clientStorage.keys(); // ['country', 'gender']
clientStorage.empty(); // true
clientStorage.keys(); // []
clientStorage.empty(); // falseTests are written using Tiny, follow testing instruction in meteor docs
- Sponsor via GitHub
- Support via PayPal
- Use ostr.io β Monitoring, Analytics, WebSec, Web-CRON and Pre-rendering for a website
