Spaces:
Sleeping
Sleeping
Download node_modules/cacache/lib/memoization.js from omnitool-ai/omnitool_on_hf: direct link, hf CLI and curl.
- Browser
- Download file 1.49 kB
-
https://huggingface.co/spaces/omnitool-ai/omnitool_on_hf/resolve/main/node_modules/cacache/lib/memoization.js
- Command line
-
hf download hf://spaces/omnitool-ai/omnitool_on_hf/node_modules/cacache/lib/memoization.js
-
curl -L -o memoization.js https://huggingface.co/spaces/omnitool-ai/omnitool_on_hf/resolve/main/node_modules/cacache/lib/memoization.js
1.49 kB
| const { LRUCache } = require('lru-cache') | |
| const MEMOIZED = new LRUCache({ | |
| max: 500, | |
| maxSize: 50 * 1024 * 1024, // 50MB | |
| ttl: 3 * 60 * 1000, // 3 minutes | |
| sizeCalculation: (entry, key) => key.startsWith('key:') ? entry.data.length : entry.length, | |
| }) | |
| module.exports.clearMemoized = clearMemoized | |
| function clearMemoized () { | |
| const old = {} | |
| MEMOIZED.forEach((v, k) => { | |
| old[k] = v | |
| }) | |
| MEMOIZED.clear() | |
| return old | |
| } | |
| module.exports.put = put | |
| function put (cache, entry, data, opts) { | |
| pickMem(opts).set(`key:${cache}:${entry.key}`, { entry, data }) | |
| putDigest(cache, entry.integrity, data, opts) | |
| } | |
| module.exports.put.byDigest = putDigest | |
| function putDigest (cache, integrity, data, opts) { | |
| pickMem(opts).set(`digest:${cache}:${integrity}`, data) | |
| } | |
| module.exports.get = get | |
| function get (cache, key, opts) { | |
| return pickMem(opts).get(`key:${cache}:${key}`) | |
| } | |
| module.exports.get.byDigest = getDigest | |
| function getDigest (cache, integrity, opts) { | |
| return pickMem(opts).get(`digest:${cache}:${integrity}`) | |
| } | |
| class ObjProxy { | |
| constructor (obj) { | |
| this.obj = obj | |
| } | |
| get (key) { | |
| return this.obj[key] | |
| } | |
| set (key, val) { | |
| this.obj[key] = val | |
| } | |
| } | |
| function pickMem (opts) { | |
| if (!opts || !opts.memoize) { | |
| return MEMOIZED | |
| } else if (opts.memoize.get && opts.memoize.set) { | |
| return opts.memoize | |
| } else if (typeof opts.memoize === 'object') { | |
| return new ObjProxy(opts.memoize) | |
| } else { | |
| return MEMOIZED | |
| } | |
| } | |