#!/usr/bin/env node // Embarque la SPA buildée (packages/web/dist) dans public/ du package server, // pour que le tarball npm soit autonome. Branché sur le hook "prepack". // ARBORETUM_PACK_NO_WEB=1 : mode tolérant (CI/smoke), placeholder à la place du front. import { cpSync, existsSync, mkdirSync, rmSync, writeFileSync } from 'node:fs'; import { join, dirname } from 'node:path'; import { fileURLToPath } from 'node:url'; const serverDir = join(dirname(fileURLToPath(import.meta.url)), '..'); const webDist = join(serverDir, '..', 'web', 'dist'); const publicDir = join(serverDir, 'public'); if (!existsSync(webDist)) { if (process.env.ARBORETUM_PACK_NO_WEB === '1') { rmSync(publicDir, { recursive: true, force: true }); mkdirSync(publicDir, { recursive: true }); writeFileSync( join(publicDir, 'index.html'), '\n\n
Arboretum server is running, but this package was built without the web UI.
\n\n', ); console.log('copy-web: ARBORETUM_PACK_NO_WEB=1: wrote placeholder public/index.html'); process.exit(0); } console.error(`copy-web: ${webDist} not found: run npm run build -w @arboretum/web first`); process.exit(1); } rmSync(publicDir, { recursive: true, force: true }); cpSync(webDist, publicDir, { recursive: true }); console.log(`copy-web: copied ${webDist} -> ${publicDir}`);