UNPKG

@mischback/buster

Version:

buster is a tool to support cache busting for static assets of a website.

37 lines 1.58 kB
"use strict"; 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