1.0.4 • Published 3 years ago

webls v1.0.4

Weekly downloads
-
License
MIT
Repository
github
Last release
3 years ago

WEB Local Storage

npm version contributions welcome HitCount downloads

Web localstorage helps to communicate between localstorage and application, you can manage localstorage with plain, encrypted data with it and can add listeners for keys in on localstorage. In case localstorage not available then data will be handled in Memory.


Basic useful feature list:

  • Store any kind of data in localstorage/in memory.
  • Encrypt/decrypt data.
  • Add multiple listeners for a key.
  • Typescript.
  • Set encryption key by enviroment variable or by function
  • Can set expiry for a data to check while retrieving

installation

npm install webls --save

Class Functions

Functions List:

set(key, data, isJson, encrypt, expiry) // Add data in localstorage/inmem against the given key
get(key, isJson, isEncrypted, withExpiry) // get the data from localstorage/inmem against the given key
clear() // clear all data
exist(key) // give true/false if key exist or not
remove(key) // remove the key and data from localstorage
setEncryptKey(key) // set the key on which data will be ecrypted
addListner(key, callback) // Add listners to the key with callback function
removeListner(key, callback) // Remove listner from the key with callback function

Params Types:

ParamTypeRequiredDefault
keyunique StringRequiredundefined
dataAnyRequiredundefined
isJsonbooleanoptionaltrue
encryptbooleanoptionalfalse
expiryDateoptionalundefined
withExpirybooleanoptionalfalse
callback(newValue, oldValue, url) => {}Requiredundefined

Coding Example File A

import ls from 'webls';
// for Ecma5 it imports like below
// var ls = require("webls").default;

ls.set('key1','dataHere');
ls.set('key2', { temp: "mydata2" }, true); // to Object
ls.set('key3', { temp: "mydata2" }, true, true); // to save Encrypt
ls.set('key4', { temp: "mydata2" }, true, true, Date('10-12-2029')); // to save with expiry

Coding Example File B

import ls from 'webls';
// for Ecma5 it imports like below
// var drawerjs = require("drawerjs").default;

ls.get("key1"); // output: 'dataHere'
ls.get("key2", true); // output: { temp: "mydata2" }
ls.get("key3", true, true); // output: { temp: "mydata2" }
ls.get("key4", true, true, true); // output: {data: { temp: "mydata2" }, isExpired: false}

function listenerCallback(newValue, oldValue, url) => {console.log(newValue, oldValue, url)}
function listenerCallback2(newValue, oldValue, url) => {console.log(newValue, oldValue, url)}
ls.addListener("key2", listenerCallback); // triggers when key2 get updated
ls.addListener("key2", listenerCallback2); // triggers when key2 get updated
ls.removeListener("key2", listenerCallback); // remove the listner function listenerCallback from key2 but listenerCallback2 still 
ls.clear();

License

MIT