flexible-storage
TypeScript icon, indicating that this package has built-in type declarations

1.1.5 • Public • Published

Flexible Storage

Build Status codecov

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

Author

Alexander Letnikow

Package Sidebar

Install

npm i flexible-storage

Weekly Downloads

12

Version

1.1.5

License

MIT

Unpacked Size

70.8 kB

Total Files

23

Last publish

Collaborators

  • horat1us