express-cache-file
Version:
Express middleware to cache static files in server memory
32 lines (31 loc) • 929 B
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const fs_1 = require("fs");
const mime_1 = __importDefault(require("./mime"));
function getFsFile(mode) {
if (mode === 'sync') {
return getSync;
}
return getAsync;
}
function getSync(file, cb) {
try {
let buffer = (0, fs_1.readFileSync)(file);
getContent(file, buffer, cb);
}
catch (error) {
cb(error, null);
}
}
function getAsync(file, cb) {
(0, fs_1.readFile)(file, (err, buffer) => err ? cb(err, null) : getContent(file, buffer, cb));
}
function getContent(file, buffer, cb) {
(0, mime_1.default)(file, buffer)
.then((mimeType) => cb(null, { buffer, mimeType }))
.catch((err) => cb(err, null));
}
exports.default = getFsFile;