This repository has been archived on 2026-04-20. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
AsaJS/src/compilers/ui/builder.ts

39 lines
883 B
TypeScript

import { isBuildMode } from "../Configuration.js"
import { Memory } from "../Memory.js"
import { createBuildFolder } from "./linker.js"
import fs from "fs/promises"
async function buildUI() {
const build = Memory.build()
let i = 0
build.set("ui/ui_defs.json", {
ui_defs: Array.from(build.keys()),
})
await Promise.all(
build.entries().map(async ([file, value]) => {
const outFile = `build/build/${file}`
await fs
.stat(outFile.split(/\\|\//g).slice(0, -1).join("/"))
.catch(async () => await fs.mkdir(outFile.split(/\\|\//g).slice(0, -1).join("/"), { recursive: true }))
await fs.writeFile(outFile, JSON.stringify(value), "utf-8")
build.delete(file)
i++
}),
)
return i - 1
}
if (isBuildMode) {
let first = true
process.on("beforeExit", async () => {
if (first) {
await createBuildFolder()
await buildUI()
}
first = false
})
}