File Explorer

/proc/4/root/var/lang/lib/node_modules/npm/node_modules/cacache/lib

This explorer reads the filesystem of the server it runs on, so /workspace/user isn't present here. Browsing and the terminal still work against this server's own disk from /.

memoization.js1.5 KB · 73 lines
'use strict' 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  }}