Skip to content

haouarihk/func-cache

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

57 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Fun cache

This is the fun and cache.

How does it work:

It stores a map of results of a function and uses arguments as keys, for faster response,

Note that if the function result in different results with the same argument, the cache wouldn't work.

How to use:

import funcache from "func-cache";

const cachedFibonacci = funcache((num: number) => {
    // ... your function here
}, options); // about the options, see below


console.log(cachedFibonacci(1000)); //-- viewing the result

console.log(cachedFibonacci.noCache(1000)); //-- run without caching

console.log(cachedFibonacci.clearCache()); //-- to clear the cache

Options:

import funcache, { localStorageCacher, fSCacher, redisCacher, upstashCacher } from "func-cache";

const options = {
  // (1 sec) in miliseconds
  lifeTime: 1000, 

  /** debounce time wait to call onDataUpdate, default 1000ms */
  debounceTimer: 200,

  /** incase the call is async, (sometimes the script doesn't detect it's async and wont run the await for it) default: false */
  async: true,


    
  // place to store the cache, incase of restarts (browser only)
  ...localStorageCacher("_cachePlace_for_fibonacci"), 

  // place to store the cache, incase of restarts (server only). fs way
  ...fSCacher("./_cachePlace_for_fibonacci.json"), 

  // place to store the cache, incase of restarts (server only). redis way
  ...redisCacher("_cachePlace_for_fibonacci", {
    client: redisClient,
  }),

  // place to store the cache, incase of restarts (server only). upstash way
  ...upstashCacher("_cachePlace_for_fibonacci", {
    client: upstashClient,
  }),
};