35 lines
840 B
JavaScript
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");
|