1.0.1 • Published 6 years ago

runtime-caching v1.0.1

Weekly downloads
3
License
MIT
Repository
github
Last release
6 years ago

runtime-caching Build Status

demo: https://msn0.github.io/runtime-caching

Runtime-caching is used for caching function responses. It is useful when dealing with heavy, time-consuming algorithms. In the following example factorial is computed only once and cached in memory for the next 30 seconds:

const cache = require('runtime-caching')({ timeout: 30000 });

const factorial = (n) => {
    // compute and return n!
};

const factorialCached = cache(factorial);

factorialCached(55); // 121645100408832000

installation

$ npm i runtime-caching

examples

cache promise responses

import { cache } from 'runtime-caching';

function foo (name) {
   return fetch(`/foo?name=${name}`);
}

module.exports = cache({ timeout: 30000 })(foo);

cache computationally and memory expensive algorithms

import { cache } from 'runtime-caching';

function compute(params) {
    // some heavy computations
    return result;
}

// computeCached will cache results for 30 seconds.
// Results obtained from different input params are cached separately.
const computeCached = cache({ timeout: 30000 })(compute);

// Nothing is cached at the moment.
// Execute compute('foo') and cache the result
computeCached('foo');

// compute was already called with 'foo'. Just return cached value.
computeCached('foo');

// compute was already called but with different params.
// Execute compute('bar') and cache value under different key.
computeCached('bar');

cache class methods

runtime-caching may be used as javascript-decorator

import cache from 'runtime-caching';

class Foo {

  // cache response for 1000 milliseconds
  @cache({ timeout: 1000 })
  request() {
    return 'the value to be cached';
  }
}

License

MIT © Michał Jezierski