d2/d2js/js/build.js
Alexander Wang 8d71e8fff8
init d2.js
2025-01-12 10:50:05 -07:00

35 lines
840 B
JavaScript

import { build } from "bun";
import { copyFile, mkdir } from "node:fs/promises";
import { join } from "node:path";
await mkdir("./dist/esm", { recursive: true });
await mkdir("./dist/cjs", { recursive: true });
const commonConfig = {
target: "node",
splitting: false,
sourcemap: "external",
minify: true,
naming: {
entry: "[dir]/[name].js",
chunk: "[name]-[hash].js",
asset: "[name]-[hash][ext]",
},
};
async function buildAndCopy(format) {
const outdir = `./dist/${format}`;
await build({
...commonConfig,
entrypoints: ["./src/index.js", "./src/worker.js", "./src/platform.js"],
outdir,
format,
});
await copyFile("./wasm/d2.wasm", join(outdir, "d2.wasm"));
await copyFile("./wasm/wasm_exec.js", join(outdir, "wasm_exec.js"));
}
await buildAndCopy("esm");
await buildAndCopy("cjs");