Files
PodTui/build.ts
Michael Freno d5ce8452e4 4, partial 5
2026-02-04 01:00:57 -05:00

44 lines
1.2 KiB
TypeScript

import solidPlugin from "@opentui/solid/bun-plugin"
import { copyFileSync, existsSync, mkdirSync } from "node:fs"
import { join, dirname } from "node:path"
// Build the JavaScript bundle
await Bun.build({
entrypoints: ["./src/index.tsx"],
outdir: "./dist",
target: "bun",
minify: true,
sourcemap: "external",
plugins: [solidPlugin],
})
// Copy the native library to dist for distribution
const platform = process.platform
const arch = process.arch
// Map platform/arch to OpenTUI package names
const platformMap: Record<string, string> = {
"darwin-arm64": "darwin-arm64",
"darwin-x64": "darwin-x64",
"linux-x64": "linux-x64",
"linux-arm64": "linux-arm64",
"win32-x64": "win32-x64",
"win32-arm64": "win32-arm64",
}
const platformKey = `${platform}-${arch}`
const platformPkg = platformMap[platformKey]
if (platformPkg) {
const libName = platform === "win32" ? "opentui.dll" : "libopentui.dylib"
const srcPath = join("node_modules", `@opentui/core-${platformPkg}`, libName)
if (existsSync(srcPath)) {
const destPath = join("dist", libName)
copyFileSync(srcPath, destPath)
console.log(`Copied native library: ${libName}`)
}
}
console.log("Build complete")