1.0.0 • Published 9 years ago

angular-client-cache v1.0.0

Weekly downloads
4
License
MIT
Repository
github
Last release
9 years ago

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%20storage

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
1.0.0

9 years ago

0.0.7

9 years ago

0.0.6

9 years ago

0.0.5

9 years ago

0.0.4

9 years ago

0.0.3

9 years ago

0.0.2

9 years ago

0.0.1

9 years ago