angular-client-cache

1.0.0 • Public • Published

angular-client-cache

Build Status Code Climate Test Coverage NPM version License Dependency Status

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:

      set(key: string, value: any): void;
 
      get<T>(key: string): T;
 
      tryGetSet<T>(key: string, apiCall: Function, objectBuilder?: Function): ng.IPromise<T>;
 
      configure(options: IStorageOptions): void;
 
      remove(key: string): void;
 
      removeAll(): 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.set('key', value);
 
    //get:
 
    clientCache.get('key');
 
    // 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.tryGetSet('key', $http.get('/api/blah'));
 
    // or
 
    var builder = function(itemToBuild) { return { something: new Date(itemToBuild.date); }};
    clientCache.tryGetSet('key', $http.get('/api/blah'), builder);
 
    // configure
 
    clientCache.configure({ useCompression: true });
 
    // remove
 
    clientCache.remove('key');
 
    // removeAll
 
    clientCache.removeAll();
```
 
Options:
``` javascript
    storagePrefix?: string;
    useCompression?: boolean;
```
 
Dependencies:
 
LZ-string (https://github.com/pieroxy/lz-string/),
Angular

Package Sidebar

Install

npm i angular-client-cache

Weekly Downloads

3

Version

1.0.0

License

MIT

Last publish

Collaborators

  • jonocairns