mirror of
https://github.com/bilawalsidhu/gods-eye-view.git
synced 2026-11-04 18:34:02 +00:00
Cesium's script sets CESIUM_WORKERS itself when it loads, so the panel's combined workers script was never used, and neither was the embedded terrain-heights file: the worker still requested it from the panel page's site. The panel build now writes only the prelude, and the panel puts it ahead of whatever Cesium assigns to CESIUM_WORKERS. The separate esbuild bundle of Cesium's workers is gone.
47 lines
1.5 KiB
JavaScript
47 lines
1.5 KiB
JavaScript
#!/usr/bin/env node
|
|
/**
|
|
* Build the MCP Apps panel: the app under dist/panel, served at /panel/.
|
|
* See build/panel.js.
|
|
*/
|
|
|
|
import { readFile, rename, rm, writeFile } from 'node:fs/promises';
|
|
import { join } from 'node:path';
|
|
import { fileURLToPath } from 'node:url';
|
|
import { build } from 'vite';
|
|
import standaloneConfig from '../server/standalone/vite.config.js';
|
|
import {
|
|
PANEL_BASE,
|
|
PANEL_OUT_DIR,
|
|
PANEL_WORKER_FILES,
|
|
PANEL_WORKER_PRELUDE_PATH,
|
|
panelBuildConfig,
|
|
workerFilesPrelude,
|
|
} from '../build/panel.js';
|
|
|
|
const root = fileURLToPath(new URL('../', import.meta.url));
|
|
const outDir = join(root, PANEL_OUT_DIR);
|
|
|
|
const config = standaloneConfig({ command: 'build', mode: 'production' });
|
|
await build({
|
|
configFile: false,
|
|
root,
|
|
...panelBuildConfig(config),
|
|
});
|
|
|
|
// Cesium's plugin copies its files under the base path inside outDir.
|
|
const nested = join(outDir, PANEL_BASE, 'cesium');
|
|
await rm(join(outDir, 'cesium'), { recursive: true, force: true });
|
|
await rename(nested, join(outDir, 'cesium'));
|
|
await rm(join(outDir, PANEL_BASE.split('/')[1]), { recursive: true });
|
|
|
|
// Cesium's workers load these files themselves; embed them in a prelude the
|
|
// panel runs ahead of Cesium's workers script.
|
|
const files = {};
|
|
for (const name of PANEL_WORKER_FILES)
|
|
files[name] = await readFile(join(outDir, 'cesium', name), 'utf8');
|
|
await writeFile(
|
|
join(outDir, PANEL_WORKER_PRELUDE_PATH),
|
|
workerFilesPrelude(files),
|
|
);
|
|
console.log(`Panel build written to ${PANEL_OUT_DIR}`);
|