@mischback/buster
Version:
buster is a tool to support cache busting for static assets of a website.
37 lines • 1.58 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.hashWalker = void 0;
const path_1 = require("path");
const fileobject_walker_1 = require("@mischback/fileobject-walker");
const filter_1 = require("./filter");
const filesystem_1 = require("./filesystem");
const hash_1 = require("./hash");
function createHashedFile(filename, payloadConfig) {
const config = payloadConfig;
return new Promise((resolve, reject) => {
(0, filter_1.filterByExtension)(filename, config.extensions)
.then(hash_1.hashFileContent)
.then((hash) => {
return Promise.resolve((0, path_1.join)((0, path_1.dirname)(filename), `${(0, path_1.basename)(filename, (0, path_1.extname)(filename))}.${hash.substring(0, config.hashLength)}${(0, path_1.extname)(filename)}`));
})
.then((newFilename) => {
return (0, filesystem_1.createFile)(filename, newFilename, config.mode);
})
.then((newFilename) => {
return resolve({
[filename.substring(config.commonPathLength)]: newFilename.substring(config.commonPathLength),
});
})
.catch((err) => {
if (err instanceof filter_1.BusterExtensionFilterError)
return resolve({});
else
return reject(err);
});
});
}
function hashWalker(config) {
return (0, fileobject_walker_1.fileObjectWalker)(config.input, createHashedFile, config);
}
exports.hashWalker = hashWalker;
//# sourceMappingURL=hashwalker.js.map