1.0.0 • Published 10 years ago

angular-client-cache v1.0.0

Weekly downloads
4
License
MIT
Repository
github
Last release
10 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

10 years ago

0.0.7

10 years ago

0.0.6

10 years ago

0.0.5

10 years ago

0.0.4

10 years ago

0.0.3

10 years ago

0.0.2

10 years ago

0.0.1

10 years ago