Sha256: 18d66b89a6397399535afb45858b2a6f734226e4972f7857daf5985b72bd1be7
Contents?: true
Size: 1.04 KB
Versions: 3
Compression:
Stored size: 1.04 KB
Contents
var fs = require('fs'); var path = require('path'); var crypto = require('crypto'); var existsSync = fs.existsSync || path.existsSync; var mkdirp = require('mkdirp'); var detective = require('detective'); module.exports = function (cacheFile) { mkdirp.sync(path.dirname(cacheFile), 0700); var cache = {}; if (existsSync(cacheFile)) { var body = fs.readFileSync(cacheFile); try { cache = JSON.parse(body); } catch (err) {} } function save (h, res) { cache[h] = res; fs.writeFileSync(cacheFile, JSON.stringify(cache)); } function hash (src) { return new crypto.Hash('md5').update(src).digest('hex'); } var deputy = function (src) { return deputy.find(src).strings; }; deputy.find = function (src) { var h = hash(src); var c = cache[h]; if (c) return c; else { c = detective.find(src); save(h, c); return c; } }; return deputy; };
Version data entries
3 entries across 3 versions & 2 rubygems