build: add frontend TypeScript toolchain
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
// SPDX-FileCopyrightText: 2026 Stan Grams <sjg@haxx.space>
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
import { build } from "esbuild";
|
||||
import { rm } from "node:fs/promises";
|
||||
import { fileURLToPath } from "node:url";
|
||||
import path from "node:path";
|
||||
|
||||
const frontendDir = path.dirname(fileURLToPath(import.meta.url));
|
||||
const sourceDir = path.join(frontendDir, "src");
|
||||
const outputDir = path.join(frontendDir, "..", "assets", "web", "generated");
|
||||
|
||||
await rm(outputDir, { recursive: true, force: true });
|
||||
|
||||
await build({
|
||||
entryPoints: {
|
||||
app: path.join(sourceDir, "app.js"),
|
||||
"ui-core": path.join(sourceDir, "ui-core.js"),
|
||||
"map-core": path.join(sourceDir, "map-core.js"),
|
||||
screenshot: path.join(sourceDir, "screenshot.js"),
|
||||
"webgl-renderer": path.join(sourceDir, "webgl-renderer.js"),
|
||||
"decode-history-worker": path.join(sourceDir, "decode-history-worker.js"),
|
||||
"leaflet-ais-tracksymbol": path.join(sourceDir, "leaflet-ais-tracksymbol.js"),
|
||||
ais: path.join(sourceDir, "plugins", "ais.js"),
|
||||
aprs: path.join(sourceDir, "plugins", "aprs.js"),
|
||||
"background-decode": path.join(sourceDir, "plugins", "background-decode.js"),
|
||||
bookmarks: path.join(sourceDir, "plugins", "bookmarks.js"),
|
||||
cw: path.join(sourceDir, "plugins", "cw.js"),
|
||||
ft2: path.join(sourceDir, "plugins", "ft2.js"),
|
||||
ft4: path.join(sourceDir, "plugins", "ft4.js"),
|
||||
ft8: path.join(sourceDir, "plugins", "ft8.js"),
|
||||
"hf-aprs": path.join(sourceDir, "plugins", "hf-aprs.js"),
|
||||
sat: path.join(sourceDir, "plugins", "sat.js"),
|
||||
"sat-scheduler": path.join(sourceDir, "plugins", "sat-scheduler.js"),
|
||||
scheduler: path.join(sourceDir, "plugins", "scheduler.js"),
|
||||
vchan: path.join(sourceDir, "plugins", "vchan.js"),
|
||||
vdes: path.join(sourceDir, "plugins", "vdes.js"),
|
||||
wefax: path.join(sourceDir, "plugins", "wefax.js"),
|
||||
wspr: path.join(sourceDir, "plugins", "wspr.js"),
|
||||
},
|
||||
outdir: outputDir,
|
||||
bundle: false,
|
||||
target: "es2022",
|
||||
sourcemap: false,
|
||||
legalComments: "inline",
|
||||
charset: "utf8",
|
||||
logLevel: "info",
|
||||
});
|
||||
Reference in New Issue
Block a user