import {build} from 'esbuild'; import {mkdir,writeFile} from 'node:fs/promises'; import {fileURLToPath} from 'node:url'; import {resolve,join} from 'node:path'; const root=fileURLToPath(new URL('.',import.meta.url)); const destination=process.argv[2]; if(!destination)throw Error('Pass an artifact output directory; no server is started.'); const result=await build({entryPoints:[join(root,'main.tsx')],bundle:true,write:false,minify:true, format:'iife',platform:'browser',jsx:'automatic',outfile:'preview.js',define:{'process.env.NODE_ENV':'"production"'}, alias:{'@nodedc/ui-react':resolve(root,'../../node_modules/@nodedc/ui-react/dist/index.js')}, nodePaths:[resolve(root,'../../node_modules')],logLevel:'warning'}); const js=result.outputFiles.find(f=>f.path.endsWith('.js')).text.replaceAll('f.path.endsWith('.css')).text.replaceAll('Mission Core · Профили управления · Прототип
`; await writeFile(join(destination,'rover-control-preview.html'),html); console.log(JSON.stringify({artifact:join(destination,'rover-control-preview.html'),bytes:Buffer.byteLength(html),network:'disabled by CSP',hardware:'no adapter'}));