/usr/local/lib/node_modules/pm2/node_modules/js-git/mixins
NameSizeModeActions
add-cache.js16250644editdlrm
create-tree.js39340644editdlrm
delay.js14610644editdlrm
fall-through.js8110644editdlrm
formats.js36380644editdlrm
fs-db.js105440644editdlrm
indexed-db.js39350644editdlrm
mem-cache.js15720644editdlrm
mem-db.js22890644editdlrm
pack-ops.js59440644editdlrm
path-to-entry.js12630644editdlrm
read-combiner.js7610644editdlrm
sync.js42050644editdlrm
walkers.js39140644editdlrm
websql-db.js44870644editdlrm
Edit: /usr/local/lib/node_modules/pm2/node_modules/js-git/mixins/mem-cache.js (1572B)
"use strict"; var encoders = require('../lib/object-codec').encoders; var decoders = require('../lib/object-codec').decoders; var Binary = require('bodec').Binary; var cache = memCache.cache = {}; module.exports = memCache; function memCache(repo) { var loadAs = repo.loadAs; repo.loadAs = loadAsCached; function loadAsCached(type, hash, callback) { if (!callback) return loadAsCached.bind(this, type, hash); if (hash in cache) return callback(null, dupe(type, cache[hash]), hash); loadAs.call(repo, type, hash, function (err, value) { if (value === undefined) return callback(err); if (type !== "blob" || value.length < 100) { cache[hash] = dupe(type, value); } return callback.apply(this, arguments); }); } var saveAs = repo.saveAs; repo.saveAs = saveAsCached; function saveAsCached(type, value, callback) { if (!callback) return saveAsCached.bind(this, type, value); value = dupe(type, value); saveAs.call(repo, type, value, function (err, hash) { if (err) return callback(err); if (type !== "blob" || value.length < 100) { cache[hash] = value; } return callback(null, hash, value); }); } } function dupe(type, value) { if (type === "blob") { if (type.length >= 100) return value; return new Binary(value); } return decoders[type](encoders[type](value)); } function deepFreeze(obj) { Object.freeze(obj); Object.keys(obj).forEach(function (key) { var value = obj[key]; if (typeof value === "object") deepFreeze(value); }); }