flexible-storage
v1.1.5
Published
Cache on frontend using LocalStorage
Downloads
32
Maintainers
Readme
Flexible Storage
Module for front-end storage using LocalStorage (or any another Storage).
It introduces some features:
- allows choose between localStorage and sessionStorage
- define expiration date (using Moment or native Date instance)
- define storage key prefix or filter
- store any object as JSON
- written on TypeScript and includes TypeScript definition files
Installation
Using NPM:
npm i --save flexible-cache
Usage
You can use default import to use FlexibleStorage with Local
Instantiating
import { FlexibleStorage } from "flexible-cache";
// Using Session Storage and some string prefix
const sessionFlexibleStorage = new FlexibleStorage(
window.sessionStorage,
'some_prefix_' // this prefix will be used internally when working with storage
);
// Using Local Storage and function prefix
const prefix = (key) => "<key>" + key + "</key>";
const FlexibleStorage = new FlexibleStorage(window.localStorage, prefix);
Note: prefix may be skipped
Caching values
import { FlexibleStorage } from "flexible-cache";
const expires = new Date(); // also can be Moment.js instance
const flexibleStorage = new FlexibleStorage(localStorage);
flexibleStorage.push('key', {
someProperty: 2,
}, expires);
Getting values
import { FlexibleStorage }, { arrayOrEmptyArray } from "flexible-cache";
const flexibleStorage = new FlexibleStorage(localStorage);
// Value will be stored array or empty array if nothing stored
let value = flexibleStorage.pull('key', arrayOrEmptyArray);
// Just to pull value with validating only key expiring
value = flexibleStorage.pull('key');
Find more validators here
Other
import { FlexibleStorage } from "flexible-cache";
const flexibleStorage = new FlexibleStorage(localStorage, 'prefix_');
flexibleStorage.exists('key'); // will try to find and validate `prefix_key` in LocalStorage
flexibleStorage.remove('key'); // will remove `prefix_key` from LocalStorage
Testing
npm test