Skip to content

deopard/simple-cacher

Repository files navigation

simple-cacher TravisCI

Simple caching class for javascript to cache collections and other objects

Install

npm

npm install simple-cacher --save-dev

bower

bower install simple-cacher --save-dev

ES6

This library is built in es6 syntax. By default, the dist file will be traspiled by Babel, but some features (Array prototype features) will still need shims. array.shims.js is a custom built core-js file which includes the features to run in non-es6 supported environment.

In a easy way of saying, if you DON'T have es6 Array support where you're using this, include the dist/array.shim.js file before dist/simple-cacher.min.js file.

If you have es6 array support, do not include dist/array.shim.js file.

Testing

Running grunt test will run the unit tests with karma.

API

Found here

Examples

Cache collection (with id)

Cacher.cache(
  'test',
  [
    { id: 1, name: 'tom' },
    { id: 2, name: 'jade' },
    { id: 3, name: 'smith' },
  ]
);
Cacher.hit('test', 2); // { id: 2, name: 'jade' }

Cache single object (without id)

Cacher.cache('test', { name: 'tom' });
Cacher.hit('test'); // { name: 'tom' }

Cache single object as collection (with id)

Cacher.cache('test', { id: 3, name: 'smith' });
Cacher.hit('test', 3); // { id: 3, name: 'smith' }

Cache collection and overwrite cache

Cacher.cache(
  'test',
  [
    { id: 1, name: 'tom' },
    { id: 2, name: 'jade' },
    { id: 3, name: 'smith' },
  ]
);
Cacher.cache('test', { id: 3, name: 'john' });
Cacher.hit('test', 3); // { id: 3, name: 'john' }

Cache collection with custom id

Cacher.cache(
  'test',
  [
    { id: 1, name: 'tom' },
    { id: 2, name: 'jade' },
    { id: 2, name: 'smith' },
  ],
  'name'
);
Cacher.hit('jade'); // { id: 2, name: 'jade' }

Cache miss

Cacher.cache(
  'test'
  [
    { id: 1, name: 'tom' },
    { id: 2, name: 'jade' },
    { id: 3, name: 'smith' },
  ]
)
Cacher.hit('test', 55); // null

Hit with multiple ids

Cacher.cache(
  'test'
  [
    { id: 1, name: 'tom' },
    { id: 2, name: 'jade' },
    { id: 3, name: 'smith' },
  ]
)
Cacher.hit('test', [1,2,5]); // [{ id: 1, name: 'tom' }, { id: 2, name: 'jade' }]

Return all caches

Cacher.cache(
  'test'
  [
    { id: 1, name: 'tom' },
    { id: 2, name: 'jade' },
    { id: 3, name: 'smith' }
  ]
)
Cacher.hit('test'); // [ { id: 1, name: 'tom' }, { id: 2, name: 'jade' }, { id: 3, name: 'smith' } ]

Force cache single object with id attribute

Cacher.cache('test', { id: 1, name: 'tom' }, null);
Cacher.hit('test'); // { id: 1, name: 'tom' }

Cache array as single object

Cacher.cache(
  'test',
  [
    { name: 'tom' },
    { name: 'jade' }
  ],
  null
);
Cacher.hit('test'); // [ { name: 'tom' }, { name: 'jade' } ]

Delete with multiple ids

Cacher.cache(
  'test',
  [
    { id: 1, name: 'tom' },
    { id: 2, name: 'jade' },
    { id: 3, name: 'smith' }
  ]
);
Cacher.delete('test', [1,3]);
Cacher.hit('test'); // [ { id: 2, name: 'jade' } ]

Delete all

Cacher.cache(
  'test',
  [
    { id: 1, name: 'tom' },
    { id: 2, name: 'jade' },
    { id: 3, name: 'smith' }
  ]
);
Cacher.delete('test');
Cacher.hit('test'); // [ ]

About

Simple caching class for javascript to cache collections and other objects

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published