lib-tools
Version:
The lib-tools helps you simplify the build, bundle, test and npm packaging workflows for Typescript, JavaScript, Angular library projects and assets module projects.
46 lines • 5.36 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.minifyESBundle = void 0;
const path = require("path");
const fs_extra_1 = require("fs-extra");
const terser_1 = require("terser");
async function minifyESBundle(inputPath, outputPath, sourceMap, ecma) {
const content = await fs_extra_1.readFile(inputPath, 'utf-8');
let sourceMapOptions = false;
const sourcemapOutputPth = `${outputPath}.map`;
if (sourceMap && fs_extra_1.existsSync(`${inputPath}.map`)) {
const sourceMapContent = await fs_extra_1.readFile(`${inputPath}.map`, 'utf-8');
sourceMapOptions = {
includeSources: true,
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
content: JSON.parse(sourceMapContent),
url: path.basename(sourcemapOutputPth)
};
}
const result = await terser_1.minify(content, {
sourceMap: sourceMapOptions,
parse: {
ecma,
bare_returns: true
}
// warnings: false,
// output: {
// // comments: /^\**!|@preserve|@license/
// comments: 'some'
// }
});
// if (result.error) {
// throw result.error;
// }
// if (result.warnings) {
// result.warnings.forEach((warning) => {
// logger.warn(warning);
// });
// }
await fs_extra_1.writeFile(outputPath, result.code);
if (sourceMap && result.map) {
await fs_extra_1.writeFile(sourcemapOutputPth, result.map);
}
}
exports.minifyESBundle = minifyESBundle;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWluaWZ5LWVzLWJ1bmRsZS5qcyIsInNvdXJjZVJvb3QiOiIuLyIsInNvdXJjZXMiOlsiaGVscGVycy9taW5pZnktZXMtYnVuZGxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZCQUE2QjtBQUU3Qix1Q0FBMkQ7QUFDM0QsbUNBQXdEO0FBRWpELEtBQUssVUFBVSxjQUFjLENBQ2hDLFNBQWlCLEVBQ2pCLFVBQWtCLEVBQ2xCLFNBQXFDLEVBQ3JDLElBQXNCO0lBRXRCLE1BQU0sT0FBTyxHQUFHLE1BQU0sbUJBQVEsQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDbkQsSUFBSSxnQkFBZ0IsR0FBK0IsS0FBSyxDQUFDO0lBQ3pELE1BQU0sa0JBQWtCLEdBQUcsR0FBRyxVQUFVLE1BQU0sQ0FBQztJQUUvQyxJQUFJLFNBQVMsSUFBSSxxQkFBVSxDQUFDLEdBQUcsU0FBUyxNQUFNLENBQUMsRUFBRTtRQUM3QyxNQUFNLGdCQUFnQixHQUFHLE1BQU0sbUJBQVEsQ0FBQyxHQUFHLFNBQVMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3JFLGdCQUFnQixHQUFHO1lBQ2YsY0FBYyxFQUFFLElBQUk7WUFDcEIsbUVBQW1FO1lBQ25FLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDO1lBQ3JDLEdBQUcsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDO1NBQ3pDLENBQUM7S0FDTDtJQUVELE1BQU0sTUFBTSxHQUFHLE1BQU0sZUFBTSxDQUFDLE9BQU8sRUFBRTtRQUNqQyxTQUFTLEVBQUUsZ0JBQWdCO1FBQzNCLEtBQUssRUFBRTtZQUNILElBQUk7WUFDSixZQUFZLEVBQUUsSUFBSTtTQUNyQjtRQUNELG1CQUFtQjtRQUNuQixZQUFZO1FBQ1osOENBQThDO1FBQzlDLHVCQUF1QjtRQUN2QixJQUFJO0tBQ1AsQ0FBQyxDQUFDO0lBRUgsc0JBQXNCO0lBQ3RCLDBCQUEwQjtJQUMxQixJQUFJO0lBRUoseUJBQXlCO0lBQ3pCLDZDQUE2QztJQUM3QyxnQ0FBZ0M7SUFDaEMsVUFBVTtJQUNWLElBQUk7SUFFSixNQUFNLG9CQUFTLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6QyxJQUFJLFNBQVMsSUFBSSxNQUFNLENBQUMsR0FBRyxFQUFFO1FBQ3pCLE1BQU0sb0JBQVMsQ0FBQyxrQkFBa0IsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7S0FDbkQ7QUFDTCxDQUFDO0FBL0NELHdDQStDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5cbmltcG9ydCB7IGV4aXN0c1N5bmMsIHJlYWRGaWxlLCB3cml0ZUZpbGUgfSBmcm9tICdmcy1leHRyYSc7XG5pbXBvcnQgeyBFQ01BLCBTb3VyY2VNYXBPcHRpb25zLCBtaW5pZnkgfSBmcm9tICd0ZXJzZXInO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbWluaWZ5RVNCdW5kbGUoXG4gICAgaW5wdXRQYXRoOiBzdHJpbmcsXG4gICAgb3V0cHV0UGF0aDogc3RyaW5nLFxuICAgIHNvdXJjZU1hcDogYm9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWQsXG4gICAgZWNtYTogRUNNQSB8IHVuZGVmaW5lZFxuKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgY29udGVudCA9IGF3YWl0IHJlYWRGaWxlKGlucHV0UGF0aCwgJ3V0Zi04Jyk7XG4gICAgbGV0IHNvdXJjZU1hcE9wdGlvbnM6IFNvdXJjZU1hcE9wdGlvbnMgfCBib29sZWFuID0gZmFsc2U7XG4gICAgY29uc3Qgc291cmNlbWFwT3V0cHV0UHRoID0gYCR7b3V0cHV0UGF0aH0ubWFwYDtcblxuICAgIGlmIChzb3VyY2VNYXAgJiYgZXhpc3RzU3luYyhgJHtpbnB1dFBhdGh9Lm1hcGApKSB7XG4gICAgICAgIGNvbnN0IHNvdXJjZU1hcENvbnRlbnQgPSBhd2FpdCByZWFkRmlsZShgJHtpbnB1dFBhdGh9Lm1hcGAsICd1dGYtOCcpO1xuICAgICAgICBzb3VyY2VNYXBPcHRpb25zID0ge1xuICAgICAgICAgICAgaW5jbHVkZVNvdXJjZXM6IHRydWUsXG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1hc3NpZ25tZW50XG4gICAgICAgICAgICBjb250ZW50OiBKU09OLnBhcnNlKHNvdXJjZU1hcENvbnRlbnQpLFxuICAgICAgICAgICAgdXJsOiBwYXRoLmJhc2VuYW1lKHNvdXJjZW1hcE91dHB1dFB0aClcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBtaW5pZnkoY29udGVudCwge1xuICAgICAgICBzb3VyY2VNYXA6IHNvdXJjZU1hcE9wdGlvbnMsXG4gICAgICAgIHBhcnNlOiB7XG4gICAgICAgICAgICBlY21hLFxuICAgICAgICAgICAgYmFyZV9yZXR1cm5zOiB0cnVlXG4gICAgICAgIH1cbiAgICAgICAgLy8gd2FybmluZ3M6IGZhbHNlLFxuICAgICAgICAvLyBvdXRwdXQ6IHtcbiAgICAgICAgLy8gICAgIC8vIGNvbW1lbnRzOiAvXlxcKiohfEBwcmVzZXJ2ZXxAbGljZW5zZS9cbiAgICAgICAgLy8gICAgIGNvbW1lbnRzOiAnc29tZSdcbiAgICAgICAgLy8gfVxuICAgIH0pO1xuXG4gICAgLy8gaWYgKHJlc3VsdC5lcnJvcikge1xuICAgIC8vICAgICB0aHJvdyByZXN1bHQuZXJyb3I7XG4gICAgLy8gfVxuXG4gICAgLy8gaWYgKHJlc3VsdC53YXJuaW5ncykge1xuICAgIC8vICAgICByZXN1bHQud2FybmluZ3MuZm9yRWFjaCgod2FybmluZykgPT4ge1xuICAgIC8vICAgICAgICAgbG9nZ2VyLndhcm4od2FybmluZyk7XG4gICAgLy8gICAgIH0pO1xuICAgIC8vIH1cblxuICAgIGF3YWl0IHdyaXRlRmlsZShvdXRwdXRQYXRoLCByZXN1bHQuY29kZSk7XG4gICAgaWYgKHNvdXJjZU1hcCAmJiByZXN1bHQubWFwKSB7XG4gICAgICAgIGF3YWl0IHdyaXRlRmlsZShzb3VyY2VtYXBPdXRwdXRQdGgsIHJlc3VsdC5tYXApO1xuICAgIH1cbn1cbiJdfQ==