import fs from "node:fs/promises"; import path from "node:path"; import { fileURLToPath } from "node:url"; import { build } from "esbuild"; const __filename = fileURLToPath(import.meta.url); const __dirname = path.dirname(__filename); const projectRoot = path.resolve(__dirname, ".."); const mobileNodeModulesPath = path.join(projectRoot, "node_modules"); const browserEntryPath = path.join( projectRoot, "scripts/ticket-mobile-editor-browser-entry.ts", ); const outputModulePath = path.join( projectRoot, "src/features/ticketRichText/generatedEditorHtml.ts", ); const result = await build({ entryPoints: [browserEntryPath], absWorkingDir: projectRoot, bundle: true, write: false, format: "iife", platform: "browser", nodePaths: [mobileNodeModulesPath], target: ["es2019"], minify: true, legalComments: "none", }); const bundle = result.outputFiles[0]?.text ?? ""; const escapedBundle = bundle.replace(/<\/script/gi, "<\\/script"); const html = `
`; const moduleSource = `// Generated by ee/mobile/scripts/generate-ticket-mobile-editor-html.mjs export const TICKET_MOBILE_EDITOR_HTML = ${JSON.stringify(html)} as const; export const TICKET_MOBILE_EDITOR_BASE_URL = "https://mobile.alga.local/editor/" as const; `; await fs.mkdir(path.dirname(outputModulePath), { recursive: true }); await fs.writeFile(outputModulePath, moduleSource, "utf8");