deno.land / x / esm@v135_2 / packages / esm-worker / build.mjs
123456789101112131415161718192021222324252627282930313233343536373839404142import { readFileSync, writeFileSync } from "node:fs";import { build as esbuild } from "esbuild";
const build = (options) => { return esbuild({ target: "esnext", format: "esm", platform: "browser", outdir: "dist", bundle: true, minify: true, logLevel: "info", ...options, });};
const toJS = (s) =>JSON.parse(s.split("\n").map((line ) => { const [s] = line.split("//") return s.trim();}).join("\n").replace(/,\n}/g, "\n}"));
const goCode = readFileSync("../../server/consts.go", "utf8");const [, version] = goCode.match(/VERSION = (\d+)/);const [, stableVersion] = goCode.match(/STABLE_VERSION = (\d+)/);const [, stableBuild] = goCode.match(/stableBuild = map\[string\]bool(\{[\s\S]+?\})/);const [, fixedPkgVersions] = goCode.match(/fixedPkgVersions = map\[string\]string(\{[\s\S]+?\})/);const [, cssPackages] = goCode.match(/cssPackages = map\[string\]string(\{[\s\S]+?\})/);const [, assetExts] = goCode.match(/assetExts = map\[string\]bool(\{[\s\S]+?\})/);
const constsTs = `// consts defined in \`server/consts.go\` generated by \`build.mjs\`// do not edit manually.export const VERSION = ${version};export const STABLE_VERSION = ${stableVersion};export const stableBuild = new Set(${JSON.stringify(Object.keys(toJS(stableBuild)))});export const assetsExts = new Set(${JSON.stringify(Object.keys(toJS(assetExts)))});export const cssPackages = ${JSON.stringify(toJS(cssPackages))};export const fixedPkgVersions = ${JSON.stringify(toJS(fixedPkgVersions))};`
await writeFileSync("./src/consts.ts", constsTs);await build({ entryPoints: ["src/index.ts"] });
Version Info