import * as esbuild from "esbuild"
import { mkdir, rm } from "node:fs/promises"

const EXTERNAL = ["node:module", "node:path", "node:fs", "node:url"]

// Clean dist so stale outputs from a previous layout don't leak through.
await rm("dist", { recursive: true, force: true })
await mkdir("dist", { recursive: true })

// 1. Plugin factory — the entry DevEco Code imports via `android2harmony`.
await esbuild.build({
  entryPoints: ["src/index.ts"],
  bundle: true,
  platform: "node",
  target: "node18",
  format: "esm",
  outfile: "dist/index.js",
  external: EXTERNAL,
  sourcemap: true,
  minify: false,
})

console.log("Build complete: dist/index.js")