Files
cap/widget/build.js
T
2025-04-12 12:56:17 +01:00

58 lines
1.4 KiB
JavaScript

import fs from "fs/promises";
import babel from "@babel/core";
import { minify } from "terser";
const paths = [
["./src/src/cap.js", "./src/cap.min.js"],
["./src/src/cap.js", "./src/cap.compat.min.js"],
["./src/src/cap-floating.js", "./src/cap-floating.min.js"],
];
paths.forEach(async function ([inpath, outpath]) {
const input = await fs.readFile(inpath, "utf-8");
babel.transform(
input,
{
presets: [
[
"@babel/preset-env",
{
targets: outpath.includes(".compat")
? "last 60 Chrome versions, last 60 Firefox versions, last 20 Safari versions, last 20 Edge versions"
: "last 20 Chrome versions, last 15 Firefox versions, last 10 Safari versions, last 10 Edge versions",
loose: true,
},
],
],
},
async function (err, result) {
if (err) {
throw new Error(err);
}
const minified = (
await minify(result.code, {
compress: {
drop_console: true,
dead_code: true,
reduce_vars: true,
drop_console: false,
},
output: {
beautify: false,
comments: false,
},
})
).code
.split("\\n")
.map((e) => {
return e.trimStart();
})
.join("\\n");
await fs.writeFile(outpath, minified);
}
);
});