UNPKG

@lusito/require-libs

Version:

Some libraries to setup require hooks

26 lines (25 loc) 1.07 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createCopyAsset = createCopyAsset; const fs_1 = require("fs"); const crypto_1 = require("crypto"); const path_1 = require("path"); function createCopyAsset(assetDir, prefix) { const assetCache = {}; (0, fs_1.mkdirSync)(assetDir, { recursive: true }); return function copyAsset(filename) { let destination = assetCache[filename]; if (!destination) { const fileBuffer = (0, fs_1.readFileSync)(filename); const hashSum = (0, crypto_1.createHash)("sha256"); hashSum.update(fileBuffer); const hash = hashSum.digest("hex").substring(0, 8); const ext = (0, path_1.extname)(filename); const newFilename = `${(0, path_1.basename)(filename, ext)}-${hash}${ext}`; destination = prefix + newFilename; assetCache[filename] = destination; (0, fs_1.copyFileSync)(filename, (0, path_1.resolve)(assetDir, newFilename)); } return destination; }; }