Files
illegitimate-bot/scripts/build.ts

42 lines
1.3 KiB
TypeScript

import fs from "node:fs/promises"
const normalFiles = await Promise.all([
fs.readdir("src/commands"),
fs.readdir("src/commands-contextmenu"),
fs.readdir("src/components/autocomplete"),
fs.readdir("src/components/buttons"),
fs.readdir("src/components/modals"),
fs.readdir("src/events/cron")
])
const eventFiles = (await fs.readdir("src/events", { recursive: true })).filter(f => f.endsWith(".ts"))
const files = [
normalFiles[0].map(f => `src/commands/${f}`),
normalFiles[1].map(f => `src/commands-contextmenu/${f}`),
normalFiles[2].map(f => `src/components/autocomplete/${f}`),
normalFiles[3].map(f => `src/components/buttons/${f}`),
normalFiles[4].map(f => `src/components/modals/${f}`),
normalFiles[5].map(f => `src/events/cron/${f}`),
eventFiles.map(f => `src/events/${f}`)
].flat()
const banner = [
"const bun__build = true",
process.env.DOCKER === "1" ? "const bun__docker = true" : null
].filter(v => typeof v === "string").join("\n")
await Bun.build({
entrypoints: ["src/index.ts", ...files],
outdir: "dist",
target: "bun",
splitting: true,
naming: {
entry: "[dir]/[name].[ext]",
chunk: "chunk/[name]-[hash].[ext]",
asset: "asset/[name]-[hash].[ext]"
},
root: "src",
banner
})