qualiteer/lib/common/executor/executor-bundler.js
dunemask e76b7f1117 [CHORE] Bump Deps and adjust Dockerfile (#8)
Co-authored-by: dunemask <dunemask@gmail.com>
Reviewed-on: https://gitea.dunemask.net/elysium/qualiteer/pulls/8
2023-09-08 17:23:39 +00:00

36 lines
1.1 KiB
JavaScript

import { URL } from "node:url";
import path from "node:path";
import caxa from "caxa";
import { rollup } from "rollup";
import { loadConfigFile } from "rollup/loadConfigFile";
import { executorLibraryDir, binName, scriptName } from "./executor-config.js";
// Rollup Config
const rollupConfigPath = path.resolve(executorLibraryDir, "rollup.config.js");
// Build functions
async function packageBin() {
console.log("Packaging bundle into binary");
return caxa({
input: "dist/bundles/",
output: `bin/${binName}`,
command: ["{{caxa}}/node_modules/.bin/node", `{{caxa}}/${scriptName}`],
uncompressionMessage: "Unpacking, please wait...",
});
}
async function rollupBundle() {
console.log("Rolling up executor into bundle");
const { options, warnings } = await loadConfigFile(rollupConfigPath);
if (warnings.count !== 0)
console.log(`Rollup has ${warnings.count} warnings`);
warnings.flush();
for (const optionsObj of options) {
const bundle = await rollup(optionsObj);
await Promise.all(optionsObj.output.map(bundle.write));
}
}
await rollupBundle();
await packageBin();
console.log("Done");