memo-json
Memoize functions returning JSON by caching results to disk. Useful for applications depending on external resources.
To install:
npm install memo-json
yarn add memo-json
Usage
import { memo } from 'memo-json'
const getDataMemo = memo(function getData(param: string) { ... })
await getDataMemo('a')
await getDataMemo('a')
await getDataMemo('b')
The first run of the above code will generate cache like below being reused in the subsequent calls.
# ${process.cwd()}/${functionName}-${paramHash}.json
.memo/getData-4e6c99.json
.memo/getData-dee827.json
Options
You can own your cusomized memo()
funciton by createMemo(opts)
.
Available options:
dir
- Optional string. ".memo"
by default.enable
- Optional boolean. true
by default.
Cusomization example:
import { createMemo } from "memo-json";
const memo = createMemo({
dir: "__generated",
enable: process.env.NODE_ENV !== "production",
});
const getDataMemo = memo(function getData() { ... })
Debug
Debug logs are available when you pass a DEBUG
environment variable.
DEBUG=memo-json ts-node your-script.ts
License
Apache 2.0
Author
Soichi Takamura @piglovesyou