| "use strict"; |
| |
| Object.defineProperty(exports, "__esModule", { |
| value: true |
| }); |
| exports.makeStaticFileCache = makeStaticFileCache; |
| |
| function _fs() { |
| const data = _interopRequireDefault(require("fs")); |
| |
| _fs = function () { |
| return data; |
| }; |
| |
| return data; |
| } |
| |
| var _caching = require("../caching"); |
| |
| function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } |
| |
| function makeStaticFileCache(fn) { |
| return (0, _caching.makeStrongCache)((filepath, cache) => { |
| if (cache.invalidate(() => fileMtime(filepath)) === null) { |
| cache.forever(); |
| return null; |
| } |
| |
| return fn(filepath, _fs().default.readFileSync(filepath, "utf8")); |
| }); |
| } |
| |
| function fileMtime(filepath) { |
| try { |
| return +_fs().default.statSync(filepath).mtime; |
| } catch (e) { |
| if (e.code !== "ENOENT" && e.code !== "ENOTDIR") throw e; |
| } |
| |
| return null; |
| } |