1.0.2 • Published 5 years ago

@maxdome/cache v1.0.2

Weekly downloads
-
License
-
Repository
-
Last release
5 years ago

Usage

const cache = require('@maxdome/cache')(client);

const value = await cache(
  'key',
  async () => 'value'
);

If the client supports setJSON() and getJSON() (e.g. @maxdome/redis) it will be used to encode/decode the values.

const cache = require('@maxdome/cache')(client);

const value = await cache(
  'key',
  async () => ({ example: 'example' })
);

Expire

An expire (in seconds) can be passed to automatically remove the value from the cache after certain time.

const cache = require('@maxdome/cache')(client);

const value = await cache(
  'key',
  async () => 'value',
  1 * 60 * 60
);

If the expire is an object supporting asSeconds() (e.g. @maxdome/duration or moment.duration) it will be used.

const cache = require('@maxdome/cache')(client);
const duration = require('@maxdome/duration');

const value = await cache(
  'key',
  async () => 'value',
  duration('1h')
);

Invalidate

The invalidate will be called after getting the value from the cache and can, if return true, force to get a new value.

const cache = require('@maxdome/cache')(client);

const value = await cache(
  'key',
  async () => 'value',
  { invalidate: value => value.invalid }
);

Refresh

If refresh is true, the expire will always be refreshed if the key is available and the value is valid.

const cache = require('@maxdome/cache')(client);

const value = await cache(
  'key',
  async () => 'value',
  { refresh: true }
);