![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/vreg/node_modules/read-cache/ |
var fs = require('fs'); var path = require('path'); var pify = require('pify'); var stat = pify(fs.stat); var readFile = pify(fs.readFile); var resolve = path.resolve; var cache = Object.create(null); function convert(content, encoding) { if (Buffer.isEncoding(encoding)) { return content.toString(encoding); } return content; } module.exports = function (path, encoding) { path = resolve(path); return stat(path).then(function (stats) { var item = cache[path]; if (item && item.mtime.getTime() === stats.mtime.getTime()) { return convert(item.content, encoding); } return readFile(path).then(function (data) { cache[path] = { mtime: stats.mtime, content: data }; return convert(data, encoding); }); }).catch(function (err) { cache[path] = null; return Promise.reject(err); }); }; module.exports.sync = function (path, encoding) { path = resolve(path); try { var stats = fs.statSync(path); var item = cache[path]; if (item && item.mtime.getTime() === stats.mtime.getTime()) { return convert(item.content, encoding); } var data = fs.readFileSync(path); cache[path] = { mtime: stats.mtime, content: data }; return convert(data, encoding); } catch (err) { cache[path] = null; throw err; } }; module.exports.get = function (path, encoding) { path = resolve(path); if (cache[path]) { return convert(cache[path].content, encoding); } return null; }; module.exports.clear = function () { cache = Object.create(null); };