📅 You're Invited: Meet the Socket team at RSAC (April 28 – May 1).RSVP
Socket
Sign inDemoInstall
Socket

memo-again

Package Overview
Dependencies
Maintainers
0
Versions
23
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

memo-again

Serializable memoizer with promises

0.10.0
latest
npm
Version published
Maintainers
0
Created
Source

Two-level memoizer with promises stores function values in memory and/or file caches. Writes to memory and file caches can be independently changed on demand. The file cache is stored in the application local folder by default, so you may want to add local/ to .gitignore.

Memoizer

For more examples, see test/memoizer.js

const { Memoizer } = require("memo-again");
var f = x=>42+x;
var mzr = new Memoizer();
var fmemo = mzr.memoize(f);

fmemo(0); // 42 
fmemo(0); // 42 (cached)
fmemo(1); // 43
fmemo(1); // 43 (cached)

Files

File iterators and more...

Iterate over all files in directory (async)

Async generator permits precise control of thread usage.

    var files = [];
    for await (let f of Files.files(FILES_DIR)) {
        files.unshift(f);
    }
    // [ "hello", "sub/basement", "universe", ]
Customize file iteration

Async generator provides fs.Stats

    var opts = {
        root: FILES_DIR,
        stats: true, // return fs.Stats object
        absolute: true, // return absolute filepath
    }
    for await (let f of Files.files(FILES_DIR)) {
        console.log(JSON.stringify(f));
        // {path:..., stats:...}
    }
Spread-syntax initialization (sync-only)

Sync generator uses fs sync methods and can be slower.

    var files = [...Files.filesSync(FILES_DIR)];
    // [ "hello", "sub/basement", "universe", ]
Application folder

The application that uses this library

console.log(Files.APP_DIR);
// /home/somebody/myapp
Local folder

Use "local" folder for application data. Remember to add it to .gitignore

console.log(Files.LOCAL_DIR);
// /home/somebody/myapp/local

Keywords

memoizer

FAQs

Package last updated on 31 Oct 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts