angular-client-cache
Local storage and $cacheFactory wrapper for angular. Also has functionality to compress items to be stored in local storage.
Assists with the issue of low (2.5-10MB~) storage limits. Example case - had 5.12MB of localStorage data - this was compressed to 500kb.
Tests run across the lastest versions of IE/Firefox/Chrome
Uses http://caniuse.com/#search=web storage
Written in typescript
Get Started
(1) Grab the npm package
$ npm install lz-string angular-client-cache --save
or grab the bower package
$ bower install angular-client-cache --save
(2) Include angular-client-cache.js
from the dist and lz-string.js
in your index.html
after angular.
(3) Add 'ClientCache'
to your main module's list of dependencies.
(4) Inject 'ClientCacheService' and use it!
Usage info:
: void; get<T>key: string: T; tryGetSet<T>key: string apiCall: Function objectBuilder?: Function: ngIPromise<T>; : void; : void; : void;
Example usages: (note: the enum StorageType can only be used if you are using typescript - the values for pure js are Local - 0, Session - 1 and All - 2)
//set: var value = 'storeMePlz'; clientCache; //get: clientCache; // tryGetSet - this will attempt to get the value from the $cacheFactory, if the value doesn't exist it will perform the API call you supply - then set that response in local/$cacheFactory storage. You can optionally add a builder to build the object from the response. clientCache; // or var { return something: itemToBuilddate; }; clientCache; // configure clientCache; // remove clientCache; // removeAll clientCache;``` Options:``` javascript storagePrefix?: string; useCompression?: boolean;``` Dependencies: LZ-string (https://github.com/pieroxy/lz-string/),Angular