transone-cli 0.6.0 → 0.6.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -0
- package/dist/{build-mp-004pd4h0.js → build-mp-vk5ap2cw.js} +4 -4
- package/dist/{build-mp-004pd4h0.js.map → build-mp-vk5ap2cw.js.map} +3 -3
- package/dist/cli.js +1 -1
- package/dist/create.d.ts +1 -1
- package/dist/{index-pg5v7h1t.js → index-8k9x2k6m.js} +101 -18
- package/dist/{index-pg5v7h1t.js.map → index-8k9x2k6m.js.map} +5 -5
- package/dist/index.js +1 -1
- package/package.json +1 -1
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"import { mkdir, rm, writeFile } from 'node:fs/promises';\nimport { dirname, isAbsolute, relative, resolve, sep } from 'node:path';\nimport { isEntryJavaScriptOutput, isStylesheetOutput } from '../build-output';\nimport { assertSafeSubdirectoryDoesNotContain } from '../safe-path';\nimport type { BuildOptions, BuildResult, ResolvedConfig } from '../types';\nimport type { BuildTarget } from './types';\n\nconst INVALID_OUTPUT_DIRECTORY_MESSAGE =\n 'Build output must be a subdirectory of the project root';\n\ninterface BuiltPage {\n entry: string;\n assets: string[];\n javascriptAssets: string[];\n stylesheetAssets: string[];\n}\n\n/**\n * Web 目标端:复用 TSone 渲染策略,直接产出可运行的 H5 站点。\n *\n * 每个页面入口经 Bun 构建为浏览器 ESM,再以入口组件渲染出对应 HTML\n * 壳(SSR 形式)并注入构建产物,产物可直接静态部署。\n */\nexport class WebTarget implements BuildTarget {\n public readonly type = 'web' as const;\n public readonly label = '静态站点 / SPA(复用 TSone 策略化渲染)';\n\n public async build(\n config: ResolvedConfig,\n _options: BuildOptions\n ): Promise<BuildResult> {\n const entries = [...new Set(Object.values(config.pages))];\n\n for (const entry of entries) {\n await assertSafeSubdirectoryDoesNotContain(\n config.root,\n config.build.outDir,\n entry,\n INVALID_OUTPUT_DIRECTORY_MESSAGE\n );\n }\n // 动态加载:project.ts 依赖 'transone/dom'(框架 dist 的 DOM\n // 渲染模块),仅在站点渲染路径需要。\n const { renderProjectHtml } = await import('../project');\n for (const [route, entry] of Object.entries(config.pages)) {\n await renderProjectHtml(config, {}, entry, route);\n }\n\n await rm(config.build.outDir, { recursive: true, force: true });\n await mkdir(config.build.outDir, { recursive: true });\n\n const builtByEntry = new Map<string, BuiltPage>();\n const failures: string[] = [];\n for (const entry of entries) {\n const built = await buildPage(config, entry);\n if (typeof built === 'string') {\n failures.push(built);\n continue;\n }\n builtByEntry.set(entry, built);\n }\n if (failures.length > 0) {\n throw buildFailure(failures);\n }\n\n const assetsBuilt: string[] = [];\n for (const [route, entry] of Object.entries(config.pages)) {\n const page = builtByEntry.get(entry);\n if (!page) {\n throw new Error(`Missing built assets for entry: ${entry}`);\n }\n const pageHtmlPath = htmlPath(config, route);\n const html = await renderProjectHtml(\n config,\n {\n head: page.stylesheetAssets.map((asset) => ({\n tag: 'link',\n attributes: {\n rel: 'stylesheet',\n href: toAssetUrl(config.build.outDir, pageHtmlPath, asset),\n },\n })),\n scripts: page.javascriptAssets.map((asset) => ({\n type: 'module',\n src: toAssetUrl(config.build.outDir, pageHtmlPath, asset),\n })),\n },\n page.entry,\n route\n );\n await mkdir(dirname(pageHtmlPath), { recursive: true });\n await writeFile(pageHtmlPath, html);\n assetsBuilt.push(...page.assets, pageHtmlPath);\n }\n\n return {\n root: config.root,\n outDir: config.build.outDir,\n assetsBuilt,\n };\n }\n}\n\nasync function buildPage(\n config: ResolvedConfig,\n entry: string\n): Promise<BuiltPage | string> {\n let result: Awaited<ReturnType<typeof Bun.build>>;\n try {\n result = await Bun.build({\n entrypoints: [entry],\n outdir: config.build.outDir,\n target: 'browser',\n format: 'esm',\n // 生产构建默认压缩;TRANSONE_MINIFY=0 时生成未压缩产物,便于排查问题\n minify: process.env.TRANSONE_MINIFY !== '0',\n naming: { entry: '[name].[ext]', chunk: '[name]-[hash].[ext]' },\n throw: false,\n });\n } catch (error: unknown) {\n return pageFailureReason(entry, [errorMessage(error)]);\n }\n const assets = result.outputs.map((output) => resolve(output.path));\n const javascriptAssets = result.outputs\n .filter(isEntryJavaScriptOutput)\n .map((output) => resolve(output.path));\n const stylesheetAssets = result.outputs\n .filter(isStylesheetOutput)\n .map((output) => resolve(output.path));\n\n if (!result.success || assets.length === 0 || javascriptAssets.length === 0) {\n return pageFailureReason(\n entry,\n result.logs.map((log) => log.message),\n {\n success: result.success,\n hasOutput: assets.length > 0,\n hasJavaScript: javascriptAssets.length > 0,\n }\n );\n }\n\n return {\n entry,\n assets,\n javascriptAssets,\n stylesheetAssets,\n };\n}\n\nfunction pageFailureReason(\n entry: string,\n logs: string[],\n state?: { success: boolean; hasOutput: boolean; hasJavaScript: boolean }\n): string {\n const reasons = [\n state && !state.success ? 'Bun build reported failure' : '',\n state && !state.hasOutput ? 'Bun emitted no output files' : '',\n state && !state.hasJavaScript ? 'Bun emitted no JavaScript output' : '',\n ...logs,\n ].filter((reason) => reason !== '');\n\n return `${entry}: ${reasons.join('\\n')}`;\n}\n\nfunction buildFailure(failures: string[]): Error {\n if (failures.length === 1) {\n return new Error(`Failed to build TransOne application: ${failures[0]}`);\n }\n return new Error(\n `Failed to build TransOne application:\\n${failures\n .map((failure) => `- ${failure}`)\n .join('\\n')}`\n );\n}\n\nfunction htmlPath(config: ResolvedConfig, route: string): string {\n if (route === '/') {\n return resolve(config.build.outDir, 'index.html');\n }\n const relativeRoute = route.replace(/^\\/+/, '');\n if (config.build.directoryPages) {\n return resolve(config.build.outDir, relativeRoute, 'index.html');\n }\n return resolve(config.build.outDir, `${relativeRoute}.html`);\n}\n\nfunction toAssetUrl(\n outDir: string,\n fromHtmlFile: string,\n asset: string\n): string {\n const fromOutDir = relative(outDir, asset).split(sep).join('/');\n if (\n fromOutDir === '' ||\n fromOutDir === '..' ||\n fromOutDir.startsWith('../') ||\n isAbsolute(fromOutDir)\n ) {\n throw new Error(\n `Build asset must be inside the output directory: ${asset}`\n );\n }\n\n const fromHtmlDir = dirname(fromHtmlFile);\n const assetPath = relative(fromHtmlDir, asset).split(sep).join('/');\n return `./${assetPath}`;\n}\n\nfunction errorMessage(error: unknown): string {\n return error instanceof Error ? error.message : String(error);\n}\n",
|
|
8
8
|
"interface BuildOutputDescriptor {\n path: string;\n kind: string;\n}\n\nexport function isEntryJavaScriptOutput(\n output: BuildOutputDescriptor\n): boolean {\n return output.kind === 'entry-point' && isJavaScriptPath(output.path);\n}\n\nexport function isStylesheetOutput(output: { path: string }): boolean {\n return /\\.css$/i.test(output.path);\n}\n\nfunction isJavaScriptPath(path: string): boolean {\n return /\\.(?:[cm]?js)$/i.test(path);\n}\n",
|
|
9
9
|
"import { lstat, realpath } from 'node:fs/promises';\nimport { dirname, isAbsolute, relative, resolve, sep } from 'node:path';\n\nexport async function assertSafeSubdirectory(\n root: string,\n path: string,\n errorMessage: string\n): Promise<void> {\n try {\n const canonicalRoot = await realpath(root);\n const canonicalPath = await canonicalizePotentialPath(path);\n\n if (!isStrictSubdirectory(canonicalRoot, canonicalPath)) {\n throw new Error(errorMessage);\n }\n } catch {\n throw new Error(errorMessage);\n }\n}\n\nexport async function assertSafeSubdirectoryDoesNotContain(\n root: string,\n path: string,\n protectedPath: string,\n errorMessage: string\n): Promise<void> {\n try {\n const lexicalPath = resolve(path);\n const lexicalProtectedPath = resolve(protectedPath);\n const canonicalRoot = await realpath(root);\n const canonicalPath = await canonicalizePotentialPath(path);\n const canonicalProtectedPath = await realpath(protectedPath);\n\n if (\n !isStrictSubdirectory(canonicalRoot, canonicalPath) ||\n isPathWithinOrEqual(lexicalPath, lexicalProtectedPath) ||\n isPathWithinOrEqual(canonicalPath, canonicalProtectedPath)\n ) {\n throw new Error(errorMessage);\n }\n } catch {\n throw new Error(errorMessage);\n }\n}\n\nasync function canonicalizePotentialPath(path: string): Promise<string> {\n const ancestor = await findExistingAncestor(path);\n const canonicalAncestor = await realpath(ancestor);\n return resolve(canonicalAncestor, relative(ancestor, path));\n}\n\nasync function findExistingAncestor(path: string): Promise<string> {\n let candidate = path;\n\n while (candidate !== dirname(candidate)) {\n try {\n await lstat(candidate);\n return candidate;\n } catch (error: unknown) {\n if (!isMissingPathError(error)) {\n throw error;\n }\n }\n\n candidate = dirname(candidate);\n }\n\n await lstat(candidate);\n return candidate;\n}\n\nfunction isMissingPathError(error: unknown): boolean {\n return (\n typeof error === 'object' &&\n error !== null &&\n 'code' in error &&\n error.code === 'ENOENT'\n );\n}\n\nfunction isStrictSubdirectory(root: string, path: string): boolean {\n const pathFromRoot = relative(root, path);\n return (\n pathFromRoot !== '' &&\n pathFromRoot !== '..' &&\n !pathFromRoot.startsWith(`..${sep}`) &&\n !isAbsolute(pathFromRoot)\n );\n}\n\nfunction isPathWithinOrEqual(parent: string, candidate: string): boolean {\n const pathFromParent = relative(parent, candidate);\n return (\n pathFromParent === '' ||\n (pathFromParent !== '..' &&\n !pathFromParent.startsWith(`..${sep}`) &&\n !isAbsolute(pathFromParent))\n );\n}\n",
|
|
10
|
-
"import type { ResolvedMiniProgramConfig } from '../types';\n\n/**\n * 跨端差异层:同一套 mp 编译器(AST 静态分析 → WXML 系模板 / WXSS 系样式 /\n * Page/Component JS)通过 MpDialect 描述各小程序平台的产物差异。\n *\n * 平台差异点(positioning 9.M3「沉淀跨端差异层」):\n * - 模板文件后缀:.wxml / .axml / .ttml\n * - 样式文件后缀与 app 样式文件名:.wxss / .acss / .ttss\n * - 模板指令前缀:wx: / a: / tt:\n * - 事件绑定写法:bindtap / onTap / bindtap\n * - 工程配置文件与字段:project.config.json / mini.project.json / project.config.json\n * - app.json 的 window 字段名(navigationBarTitleText vs defaultTitle)与顶层差异\n * - 组件 json(微信 multipleSlots;阿里 / 字节无需)\n * - 是否生成 sitemap.json(微信特有)\n */\nexport interface MpDialect {\n /** 目标端标识,与 TargetType 一致。 */\n id: string;\n /** 人类可读描述。 */\n label: string;\n /** 模板文件后缀(不含点)。 */\n templateExt: string;\n /** 样式文件后缀(不含点)。 */\n styleExt: string;\n /** 全局样式文件名(app.wxss / app.acss / app.ttss)。 */\n appStyleFile: string;\n /** 模板指令前缀(wx: / a: / tt:)。 */\n directivePrefix: string;\n /** 普通事件绑定:bindtap / onTap / bindtap。 */\n bindEvent: (eventName: string) => string;\n /** 阻止冒泡事件绑定:catchtap / catchTap / catchtap。 */\n catchEvent: (eventName: string) => string;\n /** 工程配置文件文件名(project.config.json / mini.project.json)。 */\n projectConfigFile: string;\n /** 工程配置文件内容。 */\n buildProjectConfig: (\n mp: ResolvedMiniProgramConfig,\n projectName: string\n ) => Record<string, unknown>;\n /** app.json.window 的默认字段(平台字段名映射)。 */\n windowDefaults: (title: string) => Record<string, unknown>;\n /** app.json 顶层额外字段(微信的 style / sitemapLocation)。 */\n appJsonExtras: () => Record<string, unknown>;\n /** 是否生成 sitemap.json(微信特有)。 */\n sitemap: boolean;\n /** 自定义组件 json 的固定字段。 */\n componentJson: (usingComponents: Record<string, string>) => Record<string, unknown>;\n}\n\n/** camelCase 事件名转 PascalCase(阿里 onTap / onTouchStart)。 */\nfunction pascalEvent(eventName: string): string {\n return eventName.charAt(0).toUpperCase() + eventName.slice(1);\n}\n\nconst WEIXIN_PROJECT_SETTING = {\n es6: true,\n postcss: true,\n minified: true,\n urlCheck: false,\n} as const;\n\nexport const MP_WEIXIN_DIALECT: MpDialect = {\n id: 'mp-weixin',\n label: '微信小程序原生工程(WXML / WXSS / JS 静态转换)',\n templateExt: 'wxml',\n styleExt: 'wxss',\n appStyleFile: 'app.wxss',\n directivePrefix: 'wx:',\n bindEvent: (event) => `bind${event}`,\n catchEvent: (event) => `catch${event}`,\n projectConfigFile: 'project.config.json',\n buildProjectConfig: (mp, projectName) => ({\n appid: mp.appId,\n projectname: projectName,\n compileType: 'miniprogram',\n setting: { ...WEIXIN_PROJECT_SETTING },\n }),\n windowDefaults: (title) => ({\n navigationBarTitleText: title,\n navigationBarBackgroundColor: '#ffffff',\n navigationBarTextStyle: 'black',\n backgroundTextStyle: 'light',\n }),\n appJsonExtras: () => ({\n style: 'v2',\n sitemapLocation: 'sitemap.json',\n }),\n sitemap: true,\n componentJson: (usingComponents) => ({\n component: true,\n multipleSlots: true,\n usingComponents,\n }),\n};\n\nexport const MP_ALIPAY_DIALECT: MpDialect = {\n id: 'mp-alipay',\n label: '阿里小程序原生工程(AXML / ACSS / JS 静态转换)',\n templateExt: 'axml',\n styleExt: 'acss',\n appStyleFile: 'app.acss',\n directivePrefix: 'a:',\n bindEvent: (event) => `on${pascalEvent(event)}`,\n catchEvent: (event) => `catch${pascalEvent(event)}`,\n projectConfigFile: 'mini.project.json',\n buildProjectConfig: () => ({\n miniprogramRoot: './',\n component2: true,\n enableAppxNg: true,\n compileType: 'miniprogram',\n }),\n windowDefaults: (title) => ({\n defaultTitle: title,\n titleBarColor: '#ffffff',\n }),\n appJsonExtras: () => ({}),\n sitemap: false,\n componentJson: (usingComponents) => ({\n component: true,\n usingComponents,\n }),\n};\n\nexport const MP_BYTEDANCE_DIALECT: MpDialect = {\n id: 'mp-bytedance',\n label: '字节小程序原生工程(TTML / TTSS / JS 静态转换)',\n templateExt: 'ttml',\n styleExt: 'ttss',\n appStyleFile: 'app.ttss',\n directivePrefix: 'tt:',\n bindEvent: (event) => `bind${event}`,\n catchEvent: (event) => `catch${event}`,\n projectConfigFile: 'project.config.json',\n buildProjectConfig: (mp, projectName) => ({\n miniprogramRoot: './',\n compileType: 'miniprogram',\n projectname: projectName,\n appid: mp.appId,\n setting: { ...WEIXIN_PROJECT_SETTING },\n }),\n windowDefaults: (title) => ({\n navigationBarTitleText: title,\n navigationBarBackgroundColor: '#ffffff',\n navigationBarTextStyle: 'black',\n backgroundTextStyle: 'light',\n }),\n appJsonExtras: () => ({}),\n sitemap: false,\n componentJson: (usingComponents) => ({\n component: true,\n usingComponents,\n }),\n};\n\nexport const MP_XIAOHONGSHU_DIALECT: MpDialect = {\n id: 'mp-xiaohongshu',\n label: '小红书小程序原生工程(XHSML / CSS / JS 静态转换)',\n templateExt: 'xhsml',\n styleExt: 'css',\n appStyleFile: 'app.css',\n directivePrefix: 'xhs:',\n bindEvent: (event) => `bind${event}`,\n catchEvent: (event) => `catch${event}`,\n projectConfigFile: 'project.config.json',\n buildProjectConfig: (mp, projectName) => ({\n appid: mp.appId,\n projectname: projectName,\n compileType: 'miniprogram',\n }),\n windowDefaults: (title) => ({\n navigationBarTitleText: title,\n navigationBarBackgroundColor: '#ffffff',\n navigationBarTextStyle: 'black',\n backgroundTextStyle: 'light',\n }),\n appJsonExtras: () => ({}),\n sitemap: false,\n componentJson: (usingComponents) => ({\n component: true,\n multipleSlots: true,\n usingComponents,\n }),\n};\n\nexport const MP_DIALECTS: Record<string, MpDialect> = {\n 'mp-weixin': MP_WEIXIN_DIALECT,\n 'mp-alipay': MP_ALIPAY_DIALECT,\n 'mp-bytedance': MP_BYTEDANCE_DIALECT,\n 'mp-xiaohongshu': MP_XIAOHONGSHU_DIALECT,\n};\n",
|
|
10
|
+
"import type { ResolvedMiniProgramConfig } from '../types';\n\n/**\n * 跨端差异层:同一套 mp 编译器(AST 静态分析 → WXML 系模板 / WXSS 系样式 /\n * Page/Component JS)通过 MpDialect 描述各小程序平台的产物差异。\n *\n * 平台差异点(positioning 9.M3「沉淀跨端差异层」):\n * - 模板文件后缀:.wxml / .axml / .ttml\n * - 样式文件后缀与 app 样式文件名:.wxss / .acss / .ttss\n * - 模板指令前缀:wx: / a: / tt:\n * - 事件绑定写法:bindtap / onTap / bindtap\n * - 工程配置文件与字段:project.config.json / mini.project.json / project.config.json\n * - app.json 的 window 字段名(navigationBarTitleText vs defaultTitle)与顶层差异\n * - 组件 json(微信 multipleSlots;阿里 / 字节无需)\n * - 是否生成 sitemap.json(微信特有)\n */\nexport interface MpDialect {\n /** 目标端标识,与 TargetType 一致。 */\n id: string;\n /** 人类可读描述。 */\n label: string;\n /** 模板文件后缀(不含点)。 */\n templateExt: string;\n /** 样式文件后缀(不含点)。 */\n styleExt: string;\n /** 全局样式文件名(app.wxss / app.acss / app.ttss)。 */\n appStyleFile: string;\n /** 模板指令前缀(wx: / a: / tt:)。 */\n directivePrefix: string;\n /** 普通事件绑定:bindtap / onTap / bindtap。 */\n bindEvent: (eventName: string) => string;\n /** 阻止冒泡事件绑定:catchtap / catchTap / catchtap。 */\n catchEvent: (eventName: string) => string;\n /** 工程配置文件文件名(project.config.json / mini.project.json)。 */\n projectConfigFile: string;\n /** 工程配置文件内容。 */\n buildProjectConfig: (\n mp: ResolvedMiniProgramConfig,\n projectName: string\n ) => Record<string, unknown>;\n /** app.json.window 的默认字段(平台字段名映射)。 */\n windowDefaults: (title: string) => Record<string, unknown>;\n /** app.json 顶层额外字段(微信的 style / sitemapLocation)。 */\n appJsonExtras: () => Record<string, unknown>;\n /** 是否生成 sitemap.json(微信特有)。 */\n sitemap: boolean;\n /** 自定义组件 json 的固定字段。 */\n componentJson: (usingComponents: Record<string, string>) => Record<string, unknown>;\n}\n\n/** camelCase 事件名转 PascalCase(阿里 onTap / onTouchStart)。 */\nfunction pascalEvent(eventName: string): string {\n return eventName.charAt(0).toUpperCase() + eventName.slice(1);\n}\n\nconst WEIXIN_PROJECT_SETTING = {\n es6: true,\n postcss: true,\n minified: true,\n urlCheck: false,\n} as const;\n\nexport const MP_WEIXIN_DIALECT: MpDialect = {\n id: 'mp-weixin',\n label: '微信小程序原生工程(WXML / WXSS / JS 静态转换)',\n templateExt: 'wxml',\n styleExt: 'wxss',\n appStyleFile: 'app.wxss',\n directivePrefix: 'wx:',\n bindEvent: (event) => `bind${event}`,\n catchEvent: (event) => `catch${event}`,\n projectConfigFile: 'project.config.json',\n buildProjectConfig: (mp, projectName) => ({\n appid: mp.appId,\n projectname: projectName,\n compileType: 'miniprogram',\n setting: { ...WEIXIN_PROJECT_SETTING },\n }),\n windowDefaults: (title) => ({\n navigationBarTitleText: title,\n navigationBarBackgroundColor: '#ffffff',\n navigationBarTextStyle: 'black',\n backgroundTextStyle: 'light',\n }),\n appJsonExtras: () => ({\n lazyCodeLoading: 'requiredComponents',\n style: 'v2',\n sitemapLocation: 'sitemap.json',\n }),\n sitemap: true,\n componentJson: (usingComponents) => ({\n component: true,\n multipleSlots: true,\n usingComponents,\n }),\n};\n\nexport const MP_ALIPAY_DIALECT: MpDialect = {\n id: 'mp-alipay',\n label: '阿里小程序原生工程(AXML / ACSS / JS 静态转换)',\n templateExt: 'axml',\n styleExt: 'acss',\n appStyleFile: 'app.acss',\n directivePrefix: 'a:',\n bindEvent: (event) => `on${pascalEvent(event)}`,\n catchEvent: (event) => `catch${pascalEvent(event)}`,\n projectConfigFile: 'mini.project.json',\n buildProjectConfig: () => ({\n miniprogramRoot: './',\n component2: true,\n enableAppxNg: true,\n compileType: 'miniprogram',\n }),\n windowDefaults: (title) => ({\n defaultTitle: title,\n titleBarColor: '#ffffff',\n }),\n appJsonExtras: () => ({}),\n sitemap: false,\n componentJson: (usingComponents) => ({\n component: true,\n usingComponents,\n }),\n};\n\nexport const MP_BYTEDANCE_DIALECT: MpDialect = {\n id: 'mp-bytedance',\n label: '字节小程序原生工程(TTML / TTSS / JS 静态转换)',\n templateExt: 'ttml',\n styleExt: 'ttss',\n appStyleFile: 'app.ttss',\n directivePrefix: 'tt:',\n bindEvent: (event) => `bind${event}`,\n catchEvent: (event) => `catch${event}`,\n projectConfigFile: 'project.config.json',\n buildProjectConfig: (mp, projectName) => ({\n miniprogramRoot: './',\n compileType: 'miniprogram',\n projectname: projectName,\n appid: mp.appId,\n setting: { ...WEIXIN_PROJECT_SETTING },\n }),\n windowDefaults: (title) => ({\n navigationBarTitleText: title,\n navigationBarBackgroundColor: '#ffffff',\n navigationBarTextStyle: 'black',\n backgroundTextStyle: 'light',\n }),\n appJsonExtras: () => ({}),\n sitemap: false,\n componentJson: (usingComponents) => ({\n component: true,\n usingComponents,\n }),\n};\n\nexport const MP_XIAOHONGSHU_DIALECT: MpDialect = {\n id: 'mp-xiaohongshu',\n label: '小红书小程序原生工程(XHSML / CSS / JS 静态转换)',\n templateExt: 'xhsml',\n styleExt: 'css',\n appStyleFile: 'app.css',\n directivePrefix: 'xhs:',\n bindEvent: (event) => `bind${event}`,\n catchEvent: (event) => `catch${event}`,\n projectConfigFile: 'project.config.json',\n buildProjectConfig: (mp, projectName) => ({\n appid: mp.appId,\n projectname: projectName,\n compileType: 'miniprogram',\n }),\n windowDefaults: (title) => ({\n navigationBarTitleText: title,\n navigationBarBackgroundColor: '#ffffff',\n navigationBarTextStyle: 'black',\n backgroundTextStyle: 'light',\n }),\n appJsonExtras: () => ({}),\n sitemap: false,\n componentJson: (usingComponents) => ({\n component: true,\n multipleSlots: true,\n usingComponents,\n }),\n};\n\nexport const MP_DIALECTS: Record<string, MpDialect> = {\n 'mp-weixin': MP_WEIXIN_DIALECT,\n 'mp-alipay': MP_ALIPAY_DIALECT,\n 'mp-bytedance': MP_BYTEDANCE_DIALECT,\n 'mp-xiaohongshu': MP_XIAOHONGSHU_DIALECT,\n};\n",
|
|
11
11
|
"import type { BuildOptions, BuildResult, ResolvedConfig } from '../types';\nimport type { BuildTarget, TargetType } from './types';\nimport {\n MP_ALIPAY_DIALECT,\n MP_BYTEDANCE_DIALECT,\n MP_WEIXIN_DIALECT,\n MP_XIAOHONGSHU_DIALECT,\n type MpDialect,\n} from '../mp/dialect';\n\n/**\n * 小程序目标端通用实现:同一套 mp 编译器 + MpDialect 差异层。\n *\n * 流水线(src/mp/):\n * 入口 → 静态分析(定位 createApp root / Component 子类)\n * → 逐页面编译(模板 / 样式 / data / methods / 生命周期)\n * → 组件调用点属性聚合(properties)\n * → 按 dialect 生成平台原生工程(app.json / app.js / 样式 / pages / components)。\n *\n * 依赖 TypeScript 编译器 API,仅在小程序构建路径惰性加载。\n */\nexport class MpTarget implements BuildTarget {\n public constructor(private readonly dialect: MpDialect) {}\n\n public get type(): TargetType {\n return this.dialect.id as TargetType;\n }\n\n public get label(): string {\n return this.dialect.label;\n }\n\n public async build(\n config: ResolvedConfig,\n _options: BuildOptions\n ): Promise<BuildResult> {\n if (!config.mp) {\n throw new Error(\n 'Mini program build requires config.mp(请在 transone.config.ts 配置 mp 字段,' +\n '如 appId / pages / outDir)'\n );\n }\n // 动态加载:mp 编译器依赖 typescript API,仅在小程序构建路径加载\n const { buildMiniProgram } = await import('../mp/build-mp');\n return buildMiniProgram(config, this.dialect);\n }\n}\n\nexport const mpWeixinTarget = new MpTarget(MP_WEIXIN_DIALECT);\nexport const mpAlipayTarget = new MpTarget(MP_ALIPAY_DIALECT);\nexport const mpBytedanceTarget = new MpTarget(MP_BYTEDANCE_DIALECT);\nexport const mpXiaohongshuTarget = new MpTarget(MP_XIAOHONGSHU_DIALECT);\n",
|
|
12
12
|
"import { cp, mkdir, rm, writeFile } from 'node:fs/promises';\nimport { existsSync } from 'node:fs';\nimport { dirname, join, resolve } from 'node:path';\nimport type { BuildResult, ResolvedConfig } from '../types';\nimport { nativeError } from './errors';\nimport { analyzeNativeScreen } from './analyze';\nimport type { NativeDialect } from './types';\n\nexport async function buildNativeApp(config: ResolvedConfig, dialect: NativeDialect): Promise<BuildResult> {\n if (!config.app) throw new Error('Native app build requires config.app');\n const entries = Object.values(config.app.pages);\n if (entries.length !== 1) throw nativeError(config.entry, '首期原生 App 只支持一个页面');\n const screen = await analyzeNativeScreen(entries[0]);\n const files = dialect.generateProject(screen, config.app);\n if (config.app.host !== undefined) {\n files[`${dialect.resourceDirectory}/transone.config.json`] =\n `${JSON.stringify({ host: config.app.host }, null, 2)}\\n`;\n }\n await rm(config.app.outDir, { recursive: true, force: true });\n const assetsBuilt: string[] = [];\n for (const [relative, content] of Object.entries(files).sort(([a], [b]) => a.localeCompare(b))) {\n const target = join(config.app.outDir, relative); await mkdir(dirname(target), { recursive: true }); await writeFile(target, content, 'utf8'); assetsBuilt.push(target);\n }\n if (existsSync(config.app.publicDir)) await cp(config.app.publicDir, join(config.app.outDir, dialect.resourceDirectory), { recursive: true });\n return { root: config.root, outDir: resolve(config.app.outDir), assetsBuilt };\n}\n",
|
|
13
13
|
"import { basename } from 'node:path';\n\nexport function nativeError(filePath: string, message: string): Error {\n return new Error(`[transone app] ${basename(filePath)}: ${message}`);\n}\n",
|
|
@@ -16,12 +16,12 @@
|
|
|
16
16
|
"import type { NativeDialect, NativeNode, NativeScreen, NativeTextPart } from './types';\n\nfunction text(parts: NativeTextPart[], language: 'swift' | 'kotlin' | 'ark'): string {\n if (language === 'swift') {\n const value = parts.map((part) => part.kind === 'literal' ? part.value : `\\\\(${part.key})`).join('');\n return `\"${value.replace(/\"/g, '\\\\\"')}\"`;\n }\n if (language === 'kotlin') {\n return JSON.stringify(parts.map((part) => part.kind === 'literal' ? part.value : `$${part.key}`).join(''));\n }\n return parts.map((part) => part.kind === 'literal' ? JSON.stringify(part.value) : `this.${part.key}`).join(' + ') || '\"\"';\n}\nfunction action(node: Extract<NativeNode, { kind: 'button' }>, language: 'swift' | 'kotlin' | 'ark'): string {\n const { action } = node;\n const target = language === 'ark' ? `this.${action.key}` : action.key;\n return action.kind === 'increment' ? `${target} ${action.by >= 0 ? '+=' : '-='} ${Math.abs(action.by)}` : `${target} = ${typeof action.value === 'string' ? JSON.stringify(action.value) : action.value}`;\n}\nfunction swiftNode(node: NativeNode, indent = ' '): string {\n if (node.kind === 'container') return `${indent}VStack {\\n${node.children.map((child) => swiftNode(child, `${indent} `)).join('\\n')}\\n${indent}}`;\n if (node.kind === 'text') return `${indent}Text(${text(node.parts, 'swift')})`;\n return `${indent}Button(${text(node.parts, 'swift')}) { ${action(node, 'swift')} }`;\n}\nfunction kotlinNode(node: NativeNode, indent = ' '): string {\n if (node.kind === 'container') return `${indent}Column {\\n${node.children.map((child) => kotlinNode(child, `${indent} `)).join('\\n')}\\n${indent}}`;\n if (node.kind === 'text') return `${indent}Text(${text(node.parts, 'kotlin')})`;\n return `${indent}Button(onClick = { ${action(node, 'kotlin')} }) { Text(${text(node.parts, 'kotlin')}) }`;\n}\nfunction arkNode(node: NativeNode, indent = ' '): string {\n if (node.kind === 'container') return `${indent}Column() {\\n${node.children.map((child) => arkNode(child, `${indent} `)).join('\\n')}\\n${indent}}`;\n if (node.kind === 'text') return `${indent}Text(${text(node.parts, 'ark')})`;\n return `${indent}Button(${text(node.parts, 'ark')}).onClick(() => { ${action(node, 'ark')} })`;\n}\nfunction swiftState(screen: NativeScreen): string { return screen.state.map((item) => ` @State private var ${item.key}: ${typeof item.value === 'number' ? 'Int' : typeof item.value === 'boolean' ? 'Bool' : 'String'} = ${JSON.stringify(item.value)}`).join('\\n'); }\nfunction kotlinState(screen: NativeScreen): string { return screen.state.map((item) => ` var ${item.key} by remember { mutableStateOf(${JSON.stringify(item.value)}) }`).join('\\n'); }\nfunction arkState(screen: NativeScreen): string { return screen.state.map((item) => ` @State ${item.key}: ${typeof item.value === 'number' ? 'number' : typeof item.value === 'boolean' ? 'boolean' : 'string'} = ${JSON.stringify(item.value)}`).join('\\n'); }\n\nexport const IOS_DIALECT: NativeDialect = {\n id: 'app-ios', label: 'iOS 原生 App(SwiftUI)', resourceDirectory: 'TransOneApp/Assets',\n generateProject(screen, config) {\n return {\n 'TransOneApp/TransOneApp.swift': `import SwiftUI\\n\\n@main struct TransOneApp: App { var body: some Scene { WindowGroup { ContentView() } } }\\n`,\n 'TransOneApp/ContentView.swift': `import SwiftUI\\n\\nstruct ContentView: View {\\n${swiftState(screen)}\\n var body: some View {\\n${swiftNode(screen.root)}\\n }\\n}\\n`,\n 'TransOneApp.xcodeproj/project.pbxproj': xcodeProject(config),\n 'TransOneApp/Assets.xcassets/Contents.json': '{\"info\":{\"author\":\"xcode\",\"version\":1}}\\n',\n };\n },\n};\n\nfunction xcodeProject(config: { appName: string; bundleId: string; minPlatformVersion: string }): string {\n const escapedName = config.appName.replace(/\"/g, '\\\\\"');\n return `// !$*UTF8*$!\n{\n archiveVersion = 1;\n classes = {};\n objectVersion = 56;\n objects = {\n\n/* Begin PBXBuildFile section */\n A00100000000000000000001 /* TransOneApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = A00100000000000000000011 /* TransOneApp.swift */; };\n A00100000000000000000002 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A00100000000000000000012 /* ContentView.swift */; };\n/* End PBXBuildFile section */\n\n/* Begin PBXFileReference section */\n A00100000000000000000011 /* TransOneApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TransOneApp.swift; sourceTree = \"<group>\"; };\n A00100000000000000000012 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = \"<group>\"; };\n A00100000000000000000013 /* TransOneApp.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = TransOneApp.app; sourceTree = BUILT_PRODUCTS_DIR; };\n/* End PBXFileReference section */\n\n/* Begin PBXGroup section */\n A00100000000000000000021 = {isa = PBXGroup; children = (A00100000000000000000022 /* TransOneApp */, A00100000000000000000023 /* Products */, ); sourceTree = \"<group>\"; };\n A00100000000000000000022 /* TransOneApp */ = {isa = PBXGroup; children = (A00100000000000000000011 /* TransOneApp.swift */, A00100000000000000000012 /* ContentView.swift */, ); path = TransOneApp; sourceTree = \"<group>\"; };\n A00100000000000000000023 /* Products */ = {isa = PBXGroup; children = (A00100000000000000000013 /* TransOneApp.app */, ); name = Products; sourceTree = \"<group>\"; };\n/* End PBXGroup section */\n\n/* Begin PBXNativeTarget section */\n A00100000000000000000031 /* TransOneApp */ = {isa = PBXNativeTarget; buildConfigurationList = A00100000000000000000041 /* Build configuration list for PBXNativeTarget \"TransOneApp\" */; buildPhases = (A00100000000000000000032 /* Sources */, A00100000000000000000033 /* Frameworks */, A00100000000000000000034 /* Resources */, ); buildRules = (); dependencies = (); name = TransOneApp; productName = TransOneApp; productReference = A00100000000000000000013 /* TransOneApp.app */; productType = \"com.apple.product-type.application\"; };\n/* End PBXNativeTarget section */\n\n/* Begin PBXProject section */\n A00100000000000000000051 /* Project object */ = {isa = PBXProject; attributes = { LastUpgradeCheck = 2700; TargetAttributes = { A00100000000000000000031 = { CreatedOnToolsVersion = 27.0; }; }; }; buildConfigurationList = A00100000000000000000052 /* Build configuration list for PBXProject \"TransOneApp\" */; compatibilityVersion = \"Xcode 14.0\"; developmentRegion = en; hasScannedForEncodings = 0; knownRegions = (en, Base, ); mainGroup = A00100000000000000000021; productRefGroup = A00100000000000000000023; projectDirPath = \"\"; projectRoot = \"\"; targets = (A00100000000000000000031 /* TransOneApp */, ); };\n/* End PBXProject section */\n\n/* Begin PBXResourcesBuildPhase section */\n A00100000000000000000034 /* Resources */ = {isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = (); runOnlyForDeploymentPostprocessing = 0; };\n/* End PBXResourcesBuildPhase section */\n\n/* Begin PBXSourcesBuildPhase section */\n A00100000000000000000032 /* Sources */ = {isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = (A00100000000000000000001 /* TransOneApp.swift in Sources */, A00100000000000000000002 /* ContentView.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; };\n/* End PBXSourcesBuildPhase section */\n\n/* Begin PBXFrameworksBuildPhase section */\n A00100000000000000000033 /* Frameworks */ = {isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = (); runOnlyForDeploymentPostprocessing = 0; };\n/* End PBXFrameworksBuildPhase section */\n\n/* Begin XCBuildConfiguration section */\n A00100000000000000000061 /* Debug */ = {isa = XCBuildConfiguration; buildSettings = { CLANG_ENABLE_MODULES = YES; SWIFT_VERSION = 5.0; }; name = Debug; };\n A00100000000000000000062 /* Release */ = {isa = XCBuildConfiguration; buildSettings = { CLANG_ENABLE_MODULES = YES; SWIFT_VERSION = 5.0; }; name = Release; };\n A00100000000000000000063 /* Debug */ = {isa = XCBuildConfiguration; buildSettings = { ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; CODE_SIGNING_ALLOWED = NO; GENERATE_INFOPLIST_FILE = YES; IPHONEOS_DEPLOYMENT_TARGET = ${config.minPlatformVersion}; PRODUCT_BUNDLE_IDENTIFIER = ${config.bundleId}; PRODUCT_NAME = \"${escapedName}\"; SDKROOT = iphoneos; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = \"1,2\"; }; name = Debug; };\n A00100000000000000000064 /* Release */ = {isa = XCBuildConfiguration; buildSettings = { ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; CODE_SIGNING_ALLOWED = NO; GENERATE_INFOPLIST_FILE = YES; IPHONEOS_DEPLOYMENT_TARGET = ${config.minPlatformVersion}; PRODUCT_BUNDLE_IDENTIFIER = ${config.bundleId}; PRODUCT_NAME = \"${escapedName}\"; SDKROOT = iphoneos; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = \"1,2\"; }; name = Release; };\n/* End XCBuildConfiguration section */\n\n/* Begin XCConfigurationList section */\n A00100000000000000000041 /* Build configuration list for PBXNativeTarget \"TransOneApp\" */ = {isa = XCConfigurationList; buildConfigurations = (A00100000000000000000063 /* Debug */, A00100000000000000000064 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; };\n A00100000000000000000052 /* Build configuration list for PBXProject \"TransOneApp\" */ = {isa = XCConfigurationList; buildConfigurations = (A00100000000000000000061 /* Debug */, A00100000000000000000062 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; };\n/* End XCConfigurationList section */\n };\n rootObject = A00100000000000000000051 /* Project object */;\n}\n`;\n}\n\nexport const ANDROID_DIALECT: NativeDialect = {\n id: 'app-android', label: 'Android 原生 App(Jetpack Compose)', resourceDirectory: 'app/src/main/assets',\n generateProject(screen, config) {\n const pkg = config.bundleId.replace(/[^A-Za-z0-9_.]/g, '_'); const path = pkg.replace(/\\./g, '/');\n return {\n 'settings.gradle.kts': `rootProject.name = \"${config.appName}\"\\ninclude(\":app\")\\n`,\n 'build.gradle.kts': 'plugins { }\\n',\n 'app/build.gradle.kts': `plugins { id(\"com.android.application\") version \"8.5.0\" apply false }\\n`,\n 'app/src/main/AndroidManifest.xml': `<manifest package=\"${pkg}\" xmlns:android=\"http://schemas.android.com/apk/res/android\"><application android:label=\"${config.appName}\"><activity android:name=\".MainActivity\" android:exported=\"true\"><intent-filter><action android:name=\"android.intent.action.MAIN\"/><category android:name=\"android.intent.category.LAUNCHER\"/></intent-filter></activity></application></manifest>\\n`,\n [`app/src/main/java/${path}/MainActivity.kt`]: `package ${pkg}\\n\\nimport androidx.activity.ComponentActivity\\nimport androidx.activity.compose.setContent\\nimport androidx.compose.runtime.*\\nimport androidx.compose.foundation.layout.Column\\nimport androidx.compose.material3.*\\n\\nclass MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: android.os.Bundle?) { super.onCreate(savedInstanceState); setContent {\\n${kotlinState(screen)}\\n${kotlinNode(screen.root)}\\n} } }\\n`,\n };\n },\n};\n\nexport const HARMONY_DIALECT: NativeDialect = {\n id: 'app-harmony', label: 'HarmonyOS 原生 App(ArkUI)', resourceDirectory: 'entry/src/main/resources/rawfile',\n generateProject(screen, config) {\n return {\n 'AppScope/app.json5': `{ \"app\": { \"bundleName\": \"${config.bundleId}\", \"vendor\": \"TransOne\", \"versionCode\": 1, \"versionName\": \"1.0.0\" } }\\n`,\n 'AppScope/resources/base/element/string.json': `{ \"string\": [{ \"name\": \"app_name\", \"value\": \"${config.appName}\" }] }\\n`,\n 'entry/src/main/module.json5': '{ \"module\": { \"name\": \"entry\", \"type\": \"entry\", \"mainElement\": \"EntryAbility\" } }\\n',\n 'entry/src/main/ets/entryability/EntryAbility.ets': 'import UIAbility from \\'@ohos.app.ability.UIAbility\\';\\nexport default class EntryAbility extends UIAbility {}\\n',\n 'entry/src/main/ets/pages/Index.ets': `@Entry\\n@Component\\nstruct Index {\\n${arkState(screen)}\\n build() {\\n${arkNode(screen.root)}\\n }\\n}\\n`,\n };\n },\n};\n",
|
|
17
17
|
"import type { BuildTarget, TargetType } from './types';\nimport { WebTarget } from './web-target';\nimport {\n mpAlipayTarget,\n mpBytedanceTarget,\n mpWeixinTarget,\n mpXiaohongshuTarget,\n} from './mp-target';\nimport { AppTarget } from './app-target';\nimport { ANDROID_DIALECT, HARMONY_DIALECT, IOS_DIALECT } from '../app/dialects';\n\n/**\n * 目标端注册表:编译器按 Target 分发代码生成(positioning 7.3)。\n *\n * 注册 Web 与各小程序 target;\n * app-* 通过平台方言注册原生源码生成器。\n */\nexport class TargetRegistry {\n private readonly targets = new Map<TargetType, BuildTarget>();\n\n public constructor() {\n this.register(new WebTarget());\n this.register(mpWeixinTarget);\n this.register(mpAlipayTarget);\n this.register(mpBytedanceTarget);\n this.register(mpXiaohongshuTarget);\n this.register(new AppTarget(IOS_DIALECT));\n this.register(new AppTarget(ANDROID_DIALECT));\n this.register(new AppTarget(HARMONY_DIALECT));\n }\n\n public register(target: BuildTarget): void {\n this.targets.set(target.type, target);\n }\n\n public resolve(type: TargetType): BuildTarget {\n const target = this.targets.get(type);\n if (!target) {\n throw new Error(`Unknown build target: ${type}`);\n }\n return target;\n }\n\n public getAvailableTargets(): BuildTarget[] {\n return [...this.targets.values()];\n }\n}\n\nexport const targetRegistry = new TargetRegistry();\n",
|
|
18
18
|
"import { mkdir, rm } from 'node:fs/promises';\nimport { dirname, resolve } from 'node:path';\nimport { resolveConfig } from './config';\nimport { targetRegistry } from './target/registry';\nimport type { BuildOptions, BuildResult } from './types';\n\n/**\n * TransOne 构建入口:解析配置后按 Target 分发到对应编译目标。\n *\n * 同一个入口文档,`transone build --target <端>` 产出对应平台原生产物\n * (positioning 1:一份源码,多端原生产物,零运行时桥接)。\n */\nexport async function build(options: BuildOptions = {}): Promise<BuildResult> {\n const config = await resolveConfig(options);\n\n // 库构建与目标端无关:直接产出可发布的 ESM bundle + .d.ts。\n if (options.library) {\n return buildLibrary(config);\n }\n\n const target = targetRegistry.resolve(config.target);\n return target.build(config, options);\n}\n\nasync function buildLibrary(\n config: Awaited<ReturnType<typeof resolveConfig>>\n): Promise<BuildResult> {\n const library = config.library;\n if (!library) {\n throw new Error('TransOne library build requires config.library');\n }\n\n await rm(library.outDir, { recursive: true, force: true });\n await mkdir(library.outDir, { recursive: true });\n\n if (library.dts) {\n for (const tsconfig of library.tsconfigs) {\n await runTsc(config.root, tsconfig);\n }\n }\n\n const minify = library.minify ?? process.env.TRANSONE_MINIFY !== '0';\n const result = await Bun.build({\n entrypoints: [library.entry],\n outdir: library.outDir,\n root: dirname(library.entry),\n target: 'browser',\n format: 'esm',\n sourcemap: library.sourcemap ? 'linked' : undefined,\n splitting: library.splitting,\n minify,\n external: library.external,\n throw: false,\n });\n\n if (!result.success || result.outputs.length === 0) {\n throw new Error(\n `Failed to build TransOne library:\\n${result.logs\n .map((log) => log.message)\n .join('\\n')}`\n );\n }\n\n const assetsBuilt = result.outputs.map((output) => resolve(output.path));\n return { root: config.root, outDir: library.outDir, assetsBuilt };\n}\n\nasync function runTsc(root: string, tsconfig: string): Promise<void> {\n const proc = Bun.spawn(['bunx', 'tsc', '--project', tsconfig], {\n cwd: root,\n stdout: 'inherit',\n stderr: 'inherit',\n });\n const exitCode = await proc.exited;\n if (exitCode !== 0) {\n throw new Error(\n `tsc --project ${tsconfig} failed with exit code ${exitCode}`\n );\n }\n}\n",
|
|
19
|
-
"import { existsSync, mkdirSync, writeFileSync } from 'node:fs';\nimport { basename, join } from 'node:path';\n\nexport interface CreateProjectOptions {\n /** Target directory; defaults to the current working directory. */\n root?: string;\n /** Package name; defaults to the target directory basename. */\n name?: string;\n}\n\nexport interface CreateProjectResult {\n root: string;\n files: string[];\n}\n\n/** Published framework version referenced by generated projects. */\nexport const TRANSONE_FRAMEWORK_VERSION = '0.4.0';\n/** Published CLI version referenced by generated projects. */\nexport const TRANSONE_CLI_VERSION = '0.6.
|
|
20
|
-
"import { randomUUID } from 'node:crypto';\nimport {\n basename,\n extname,\n isAbsolute,\n relative,\n resolve,\n sep,\n} from 'node:path';\nimport { isEntryJavaScriptOutput, isStylesheetOutput } from './build-output';\nimport { resolveConfig } from './config';\nimport { createProxyHandler } from './proxy';\nimport { assertSafeSubdirectory } from './safe-path';\nimport { createFileWatcher, type FileWatcher } from './watch';\nimport type { ResolveConfigOptions, ResolvedConfig } from './types';\n\nconst DEVELOPMENT_URL_PREFIX = '/dev';\nconst INVALID_DEVELOPMENT_DIRECTORY_MESSAGE =\n 'Development output must be a subdirectory of the project root';\nconst LIVE_RELOAD_PATH = '/__transone/reload';\nconst WATCHED_EXTENSIONS = new Set([\n '.ts',\n '.js',\n '.mjs',\n '.cjs',\n '.json',\n '.css',\n '.html',\n]);\nconst IGNORED_WATCH_SEGMENTS = new Set([\n 'dist',\n 'node_modules',\n '.git',\n '.worktrees',\n]);\nconst LIVE_RELOAD_CLIENT_SCRIPT = [\n '<script type=\"module\">',\n 'const transoneReloadSource=new EventSource(',\n JSON.stringify(LIVE_RELOAD_PATH),\n ');',\n 'transoneReloadSource.addEventListener(\"reload\",()=>location.reload());',\n '</script>',\n].join('');\n\ntype DevServer = ReturnType<typeof Bun.serve>;\n\nexport interface StartDevServerOptions extends ResolveConfigOptions {\n watch?: boolean;\n}\n\nexport async function startDevServer(\n options: StartDevServerOptions = {}\n): Promise<DevServer> {\n if (options.watch) {\n return startWatchingDevServer(options);\n }\n const instance = await createServerInstance(options, false);\n return instance.server;\n}\n\nasync function startWatchingDevServer(\n options: StartDevServerOptions\n): Promise<DevServer> {\n let instance = await createServerInstance(options, true);\n let watcher = createProjectWatcher(instance, onChange);\n\n async function onChange(changedPath: string): Promise<void> {\n const configFile = instance.config.configFile;\n const configRelativePath =\n configFile === undefined\n ? undefined\n : toRelativePath(instance.config.root, configFile);\n if (configRelativePath === changedPath) {\n await restart();\n return;\n }\n await rebuildAndReload();\n }\n\n async function rebuildAndReload(): Promise<void> {\n const entries = [...new Set(Object.values(instance.config.pages))];\n instance.markDirty(entries);\n for (const entry of entries) {\n const bundle = await instance.getBundle(entry);\n if (bundle instanceof Response) {\n console.error('TransOne rebuild failed; keeping the last working page.');\n return;\n }\n }\n instance.liveReload?.broadcast();\n }\n\n async function restart(): Promise<void> {\n watcher.dispose();\n instance.server.stop(true);\n instance = await createServerInstance(options, true);\n watcher = createProjectWatcher(instance, onChange);\n console.log(\n `TransOne dev server restarted at http://${instance.server.hostname}:${instance.server.port}`\n );\n }\n\n return createServerHandle(\n () => instance,\n () => watcher.dispose()\n );\n}\n\nfunction createProjectWatcher(\n instance: DevServerInstance,\n onChange: (changedPath: string) => Promise<void>\n): FileWatcher {\n return createFileWatcher({\n root: instance.config.root,\n isRelevant: (relativePath) => isWatchedFile(instance, relativePath),\n onChange: (changedPath) => {\n void onChange(changedPath);\n },\n });\n}\n\ninterface DevServerInstance {\n server: DevServer;\n config: ResolvedConfig;\n getBundle: (entry: string) => Promise<DevelopmentBundle | Response>;\n markDirty: (entries: string[]) => void;\n liveReload: LiveReloadHub | undefined;\n}\n\nasync function createServerInstance(\n options: StartDevServerOptions,\n watch: boolean\n): Promise<DevServerInstance> {\n const config = await resolveConfig(options);\n // 动态加载:project.ts 依赖 'transone/dom'(框架 dist 的 DOM 渲染\n // 模块),仅在需要预渲染页面 HTML 时加载,避免 dev/build 其他路径被拖累。\n const { renderProjectHtml } = await import('./project');\n for (const [route, entry] of Object.entries(config.pages)) {\n await renderProjectHtml(config, {}, entry, route);\n }\n const developmentOutDir = resolve(config.root, 'dist', 'dev', 'h5');\n await assertSafeSubdirectory(\n config.root,\n developmentOutDir,\n INVALID_DEVELOPMENT_DIRECTORY_MESSAGE\n );\n const proxy = createProxyHandler(config.server.proxy);\n const sessionId = createGenerationId();\n const sessionOutDir = resolve(developmentOutDir, sessionId);\n const artifacts = new Map<string, DevelopmentOutput>();\n const buildProject = createDevelopmentBuilder(sessionId, sessionOutDir);\n const liveReload = watch ? createLiveReloadHub() : undefined;\n const bundles = new Map<string, DevelopmentBundle>();\n const dirtyEntries = new Set<string>();\n\n const getBundle = async (\n entry: string\n ): Promise<DevelopmentBundle | Response> => {\n const cached = bundles.get(entry);\n if (watch && cached !== undefined && !dirtyEntries.has(entry)) {\n return cached;\n }\n const bundle = await buildProject(entry);\n if (bundle instanceof Response) {\n if (watch) {\n dirtyEntries.add(entry);\n }\n return bundle;\n }\n if (watch) {\n bundles.set(entry, bundle);\n dirtyEntries.delete(entry);\n }\n return bundle;\n };\n\n const server = Bun.serve({\n hostname: config.server.host,\n port: config.server.port,\n fetch: async (request) => {\n const reloadResponse = liveReload?.handleRequest(request);\n if (reloadResponse) {\n return reloadResponse;\n }\n return (\n (await proxy(request)) ??\n serveProjectRequest(\n request,\n config,\n config.pages,\n getBundle,\n artifacts,\n liveReload\n )\n );\n },\n });\n\n return {\n server,\n config,\n getBundle,\n markDirty: (entries) => {\n entries.forEach((entry) => dirtyEntries.add(entry));\n },\n liveReload,\n };\n}\n\nfunction createServerHandle(\n getInstance: () => DevServerInstance,\n disposeWatcher: () => void\n): DevServer {\n return new Proxy({} as DevServer, {\n get(_target, property) {\n if (property === 'stop') {\n return (closeActiveConnections?: boolean) => {\n disposeWatcher();\n getInstance().server.stop(closeActiveConnections);\n };\n }\n const server = getInstance().server as unknown as Record<\n PropertyKey,\n unknown\n >;\n const value = server[property];\n return typeof value === 'function'\n ? (value as (...args: unknown[]) => unknown).bind(server)\n : value;\n },\n });\n}\n\nasync function serveProjectRequest(\n request: Request,\n config: ResolvedConfig,\n pages: Record<string, string>,\n getBundle: (entry: string) => Promise<DevelopmentBundle | Response>,\n artifacts: Map<string, DevelopmentOutput>,\n liveReload: LiveReloadHub | undefined\n): Promise<Response> {\n const pathname = new URL(request.url).pathname;\n const route = pageRouteForPathname(pages, pathname);\n\n if (route !== undefined) {\n const entry = pages[route];\n const bundle = await getBundle(entry);\n if (bundle instanceof Response) {\n return bundle;\n }\n\n try {\n const { renderProjectHtml } = await import('./project');\n const html = await renderProjectHtml(\n config,\n {\n head: bundle.stylesheets.map(({ pathname: href }) => ({\n tag: 'link',\n attributes: { rel: 'stylesheet', href },\n })),\n scripts: [{ type: 'module', src: bundle.entry.pathname }],\n },\n entry,\n route\n );\n publishDevelopmentBundle(bundle, artifacts);\n return new Response(liveReload ? injectLiveReloadScript(html) : html, {\n headers: {\n 'content-type': 'text/html; charset=utf-8',\n 'cache-control': 'no-store',\n },\n });\n } catch (error: unknown) {\n console.error(error);\n return buildFailureResponse();\n }\n }\n\n if (pathname === '/bundle.js') {\n const bundle = await getBundle(config.entry);\n if (bundle instanceof Response) {\n return bundle;\n }\n\n try {\n publishDevelopmentBundle(bundle, artifacts);\n return new Response(null, {\n status: 307,\n headers: {\n location: bundle.entry.pathname,\n 'cache-control': 'no-store',\n },\n });\n } catch (error: unknown) {\n console.error(error);\n return buildFailureResponse();\n }\n }\n\n const artifact = artifacts.get(pathname);\n if (artifact) {\n return new Response(Bun.file(artifact.filePath), {\n headers: {\n 'content-type': artifact.type,\n 'cache-control': 'no-store',\n },\n });\n }\n\n // SPA history fallback:H5 端使用 history 模式路由时,刷新/直达深层路径\n // (如 /rankings/metro)在服务端没有对应页面,回落到入口页由前端路由接管。\n // 排除 API 路径与带扩展名的静态资源请求。\n if (\n pathname !== '/' &&\n !pathname.startsWith('/api/') &&\n !/\\.[a-zA-Z0-9]+$/.test(pathname)\n ) {\n const bundle = await getBundle(config.entry);\n if (!(bundle instanceof Response)) {\n try {\n const { renderProjectHtml } = await import('./project');\n const html = await renderProjectHtml(\n config,\n {\n head: bundle.stylesheets.map(({ pathname: href }) => ({\n tag: 'link',\n attributes: { rel: 'stylesheet', href },\n })),\n scripts: [{ type: 'module', src: bundle.entry.pathname }],\n },\n config.entry,\n '/'\n );\n publishDevelopmentBundle(bundle, artifacts);\n return new Response(liveReload ? injectLiveReloadScript(html) : html, {\n headers: {\n 'content-type': 'text/html; charset=utf-8',\n 'cache-control': 'no-store',\n },\n });\n } catch (error: unknown) {\n console.error(error);\n return buildFailureResponse();\n }\n }\n }\n\n return new Response('Not found', {\n status: 404,\n headers: { 'cache-control': 'no-store' },\n });\n}\n\nfunction pageRouteForPathname(\n pages: Record<string, string>,\n pathname: string\n): string | undefined {\n if (pages[pathname] !== undefined) {\n return pathname;\n }\n if (pathname === '/index.html') {\n return '/';\n }\n const candidate =\n pathname.length > 1 && pathname.endsWith('/')\n ? pathname.replace(/\\/+$/, '')\n : pathname;\n if (pages[candidate] !== undefined) {\n return candidate;\n }\n if (candidate.endsWith('/index.html')) {\n const base = candidate.slice(0, candidate.length - '/index.html'.length);\n if (base === '') {\n return '/';\n }\n if (pages[base] !== undefined) {\n return base;\n }\n }\n return undefined;\n}\n\nfunction injectLiveReloadScript(html: string): string {\n if (html.includes(LIVE_RELOAD_PATH)) {\n return html;\n }\n if (html.includes('</body>')) {\n return html.replace('</body>', `${LIVE_RELOAD_CLIENT_SCRIPT}</body>`);\n }\n return html + LIVE_RELOAD_CLIENT_SCRIPT;\n}\n\ninterface LiveReloadHub {\n handleRequest(request: Request): Response | undefined;\n broadcast(): void;\n}\n\nconst reloadEncoder = new TextEncoder();\n\nfunction createLiveReloadHub(): LiveReloadHub {\n const controllers = new Set<ReadableStreamDefaultController<Uint8Array>>();\n\n function handleRequest(request: Request): Response | undefined {\n if (new URL(request.url).pathname !== LIVE_RELOAD_PATH) {\n return undefined;\n }\n\n let streamController:\n ReadableStreamDefaultController<Uint8Array> | undefined;\n const stream = new ReadableStream<Uint8Array>({\n start: (controller) => {\n streamController = controller;\n controllers.add(controller);\n try {\n controller.enqueue(reloadEncoder.encode(': connected\\n\\n'));\n } catch {\n controllers.delete(controller);\n }\n },\n cancel: () => {\n if (streamController) {\n controllers.delete(streamController);\n }\n },\n });\n\n return new Response(stream, {\n headers: {\n 'content-type': 'text/event-stream',\n 'cache-control': 'no-store',\n },\n });\n }\n\n function broadcast(): void {\n const message = reloadEncoder.encode('event: reload\\ndata: {}\\n\\n');\n for (const controller of [...controllers]) {\n try {\n controller.enqueue(message);\n } catch {\n controllers.delete(controller);\n }\n }\n }\n\n return { handleRequest, broadcast };\n}\n\nfunction isWatchedFile(\n instance: DevServerInstance,\n relativePath: string\n): boolean {\n if (relativePath === '' || relativePath.startsWith('..')) {\n return false;\n }\n const segments = relativePath.split('/');\n if (segments.some((segment) => IGNORED_WATCH_SEGMENTS.has(segment))) {\n return false;\n }\n const absolutePath = resolve(instance.config.root, relativePath);\n if (isWithinOrEqual(instance.config.build.outDir, absolutePath)) {\n return false;\n }\n const base = basename(absolutePath);\n if (base.startsWith('.') && absolutePath !== instance.config.configFile) {\n return false;\n }\n return WATCHED_EXTENSIONS.has(extname(base).toLowerCase());\n}\n\nfunction toRelativePath(root: string, absolutePath: string): string {\n return relative(root, absolutePath).split(sep).join('/');\n}\n\nfunction isWithinOrEqual(parent: string, candidate: string): boolean {\n const pathFromParent = relative(parent, candidate);\n return (\n pathFromParent === '' ||\n (pathFromParent !== '..' &&\n !pathFromParent.startsWith(`..${sep}`) &&\n !isAbsolute(pathFromParent))\n );\n}\n\ninterface DevelopmentOutput {\n filePath: string;\n pathname: string;\n type: string;\n}\n\ninterface DevelopmentBundle {\n entry: DevelopmentOutput;\n stylesheets: DevelopmentOutput[];\n artifacts: ReadonlyMap<string, DevelopmentOutput>;\n}\n\nfunction createDevelopmentBuilder(\n sessionId: string,\n sessionOutDir: string\n): (entry: string) => Promise<DevelopmentBundle | Response> {\n let queue = Promise.resolve();\n\n return (entry) => {\n const result = queue.then(() =>\n buildProjectBundle(entry, sessionId, sessionOutDir)\n );\n queue = result.then(\n () => undefined,\n () => undefined\n );\n return result;\n };\n}\n\nasync function buildProjectBundle(\n entry: string,\n sessionId: string,\n sessionOutDir: string\n): Promise<DevelopmentBundle | Response> {\n const generationId = createGenerationId();\n const generationOutDir = resolve(sessionOutDir, generationId);\n const generationUrl = `${DEVELOPMENT_URL_PREFIX}/${sessionId}/${generationId}`;\n const buildOptions = {\n entrypoints: [entry],\n outdir: generationOutDir,\n target: 'browser' as const,\n format: 'esm' as const,\n sourcemap: 'inline' as const,\n write: true,\n throw: false,\n publicPath: `${generationUrl}/`,\n naming: {\n entry: '[name]-[hash].[ext]',\n chunk: '[name]-[hash].[ext]',\n asset: 'assets/[name]-[hash].[ext]',\n },\n };\n\n try {\n const result = await Bun.build(buildOptions);\n const entryArtifact = result.outputs.find(isEntryJavaScriptOutput);\n if (!result.success || !entryArtifact) {\n result.logs.forEach((log) => console.error(log));\n if (!entryArtifact) {\n console.error('Failed to build project bundle: no JavaScript output');\n }\n return buildFailureResponse();\n }\n\n const pendingArtifacts = new Map<string, DevelopmentOutput>();\n const outputs = new Map<\n Awaited<ReturnType<typeof Bun.build>>['outputs'][number],\n DevelopmentOutput\n >();\n\n for (const output of result.outputs) {\n const developmentOutput = createDevelopmentOutput(\n generationOutDir,\n generationUrl,\n output\n );\n if (pendingArtifacts.has(developmentOutput.pathname)) {\n throw new Error(\n `Development output URL collision: ${developmentOutput.pathname}`\n );\n }\n pendingArtifacts.set(developmentOutput.pathname, developmentOutput);\n outputs.set(output, developmentOutput);\n }\n\n const entry = outputs.get(entryArtifact);\n if (!entry) {\n throw new Error('Development entry output was not indexed');\n }\n\n return {\n entry,\n stylesheets: result.outputs\n .filter(isStylesheetOutput)\n .map((output) => outputs.get(output))\n .filter((output): output is DevelopmentOutput => output !== undefined),\n artifacts: pendingArtifacts,\n };\n } catch (error: unknown) {\n console.error(error);\n return buildFailureResponse();\n }\n}\n\nfunction publishDevelopmentBundle(\n bundle: DevelopmentBundle,\n artifacts: Map<string, DevelopmentOutput>\n): void {\n for (const [pathname, output] of bundle.artifacts) {\n const existing = artifacts.get(pathname);\n if (existing) {\n if (existing.filePath === output.filePath) {\n continue;\n }\n throw new Error(`Development output URL collision: ${pathname}`);\n }\n artifacts.set(pathname, output);\n }\n}\n\nfunction createDevelopmentOutput(\n generationOutDir: string,\n generationUrl: string,\n output: Awaited<ReturnType<typeof Bun.build>>['outputs'][number]\n): DevelopmentOutput {\n const filePath = resolve(output.path);\n const pathFromGeneration = relative(generationOutDir, filePath);\n if (\n pathFromGeneration === '' ||\n pathFromGeneration === '..' ||\n pathFromGeneration.startsWith(`..${sep}`) ||\n isAbsolute(pathFromGeneration)\n ) {\n throw new Error(\n `Development output must not escape outside its generation directory: ${output.path}`\n );\n }\n\n const urlPath = pathFromGeneration\n .split(sep)\n .map((segment) => encodeURIComponent(segment))\n .join('/');\n\n return {\n filePath,\n pathname: `${generationUrl}/${urlPath}`,\n type: output.type,\n };\n}\n\nfunction createGenerationId(): string {\n return randomUUID().replace(/-/g, '');\n}\n\nfunction buildFailureResponse(): Response {\n return new Response('Failed to build project bundle', {\n status: 500,\n headers: { 'cache-control': 'no-store' },\n });\n}\n",
|
|
19
|
+
"import { existsSync, mkdirSync, writeFileSync } from 'node:fs';\nimport { basename, join } from 'node:path';\n\nexport interface CreateProjectOptions {\n /** Target directory; defaults to the current working directory. */\n root?: string;\n /** Package name; defaults to the target directory basename. */\n name?: string;\n}\n\nexport interface CreateProjectResult {\n root: string;\n files: string[];\n}\n\n/** Published framework version referenced by generated projects. */\nexport const TRANSONE_FRAMEWORK_VERSION = '0.4.0';\n/** Published CLI version referenced by generated projects. */\nexport const TRANSONE_CLI_VERSION = '0.6.3';\n\nexport const GITHUB_URL = 'https://github.com/geektech-team/transone';\n\ninterface ScaffoldFile {\n path: string;\n content: string;\n}\n\nexport function createProject(\n options: CreateProjectOptions = {}\n): CreateProjectResult {\n const root = options.root ?? process.cwd();\n const name = options.name ?? basename(root);\n const files = scaffoldFiles(name);\n\n const existing = files.filter((file) => existsSync(join(root, file.path)));\n if (existing.length > 0) {\n throw new Error(\n `Refusing to overwrite existing TransOne project files: ${existing\n .map((file) => file.path)\n .join(', ')}`\n );\n }\n\n mkdirSync(join(root, 'src'), { recursive: true });\n const created: string[] = [];\n for (const file of files) {\n writeFileSync(join(root, file.path), file.content, 'utf8');\n created.push(file.path);\n }\n\n return { root, files: created };\n}\n\nfunction scaffoldFiles(name: string): ScaffoldFile[] {\n return [\n {\n path: 'package.json',\n content: `${JSON.stringify(\n {\n name,\n private: true,\n type: 'module',\n scripts: {\n dev: 'transone dev',\n build: 'transone build',\n typecheck: 'bunx tsc --noEmit',\n },\n dependencies: {\n 'transone': `^${TRANSONE_FRAMEWORK_VERSION}`,\n },\n devDependencies: {\n 'transone-cli': `^${TRANSONE_CLI_VERSION}`,\n },\n },\n null,\n 2\n )}\\n`,\n },\n {\n path: 'transone.config.ts',\n content: `import { defineConfig } from 'transone-cli';\\n\\nexport default defineConfig({\\n entry: 'src/main.ts',\\n});\\n`,\n },\n {\n path: 'tsconfig.json',\n content: `${JSON.stringify(\n {\n compilerOptions: {\n target: 'ESNext',\n module: 'ESNext',\n moduleResolution: 'Bundler',\n lib: ['ESNext', 'DOM', 'DOM.Iterable'],\n strict: true,\n noEmit: true,\n skipLibCheck: true,\n verbatimModuleSyntax: true,\n },\n include: ['src/**/*', 'transone.config.ts'],\n },\n null,\n 2\n )}\\n`,\n },\n {\n path: '.gitignore',\n content: 'node_modules/\\ndist/\\n',\n },\n {\n path: 'src/main.ts',\n content: `import { Component, createApp, h, type VNode } from 'transone';\\n\\nclass App extends Component<object, object> {\\n protected initState(): object {\\n return {};\\n }\\n\\n protected initStyles(): void {\\n this.styleManager.addStyle('app-body', {\\n selector: 'body',\\n properties: {\\n margin: 0,\\n background: '#f7fbf6',\\n color: '#142216',\\n fontFamily:\\n \"ui-sans-serif, system-ui, -apple-system, 'Segoe UI', sans-serif\",\\n },\\n });\\n this.styleManager.addStyle('app-shell', {\\n selector: '.app-shell',\\n properties: {\\n alignItems: 'center',\\n display: 'flex',\\n flexDirection: 'column',\\n gap: '14px',\\n justifyContent: 'center',\\n minHeight: '100vh',\\n },\\n });\\n this.styleManager.addStyle('app-title', {\\n selector: '.app-title',\\n properties: {\\n fontSize: '64px',\\n letterSpacing: 0,\\n lineHeight: 1.05,\\n margin: 0,\\n },\\n });\\n this.styleManager.addStyle('app-link', {\\n selector: '.app-link',\\n properties: {\\n color: '#2f7c39',\\n fontSize: '16px',\\n textDecoration: 'none',\\n },\\n hover: {\\n textDecoration: 'underline',\\n },\\n });\\n }\\n\\n protected render(): VNode {\\n return h('main', { className: 'app-shell' }, [\\n h('h1', { className: 'app-title' }, ['TransOne']),\\n h(\\n 'a',\\n { className: 'app-link', href: '${GITHUB_URL}' },\\n ['GitHub']\\n ),\\n ]);\\n }\\n}\\n\\nexport const app = createApp({\\n root: App,\\n document: {\\n lang: 'zh-CN',\\n title: 'TransOne',\\n description: '轻量级纯 TypeScript 前端框架',\\n },\\n});\\n\\napp.mount();\\n`,\n },\n ];\n}\n",
|
|
20
|
+
"import { randomUUID } from 'node:crypto';\nimport { rm } from 'node:fs/promises';\nimport {\n basename,\n extname,\n isAbsolute,\n relative,\n resolve,\n sep,\n} from 'node:path';\nimport { isEntryJavaScriptOutput, isStylesheetOutput } from './build-output';\nimport { resolveConfig } from './config';\nimport { createProxyHandler } from './proxy';\nimport { assertSafeSubdirectory } from './safe-path';\nimport { createFileWatcher, type FileWatcher } from './watch';\nimport type { ResolveConfigOptions, ResolvedConfig } from './types';\n\nconst DEVELOPMENT_URL_PREFIX = '/dev';\nconst INVALID_DEVELOPMENT_DIRECTORY_MESSAGE =\n 'Development output must be a subdirectory of the project root';\nconst LIVE_RELOAD_PATH = '/__transone/reload';\nconst DEVELOPMENT_OUTPUT_RETENTION_MS = 5_000;\nconst WATCHED_EXTENSIONS = new Set([\n '.ts',\n '.js',\n '.mjs',\n '.cjs',\n '.json',\n '.css',\n '.html',\n]);\nconst IGNORED_WATCH_SEGMENTS = new Set([\n 'dist',\n 'node_modules',\n '.git',\n '.worktrees',\n]);\nconst LIVE_RELOAD_CLIENT_SCRIPT = [\n '<script type=\"module\">',\n 'const transoneReloadSource=new EventSource(',\n JSON.stringify(LIVE_RELOAD_PATH),\n ');',\n 'transoneReloadSource.addEventListener(\"reload\",()=>location.reload());',\n '</script>',\n].join('');\n\ntype DevServer = ReturnType<typeof Bun.serve>;\n\nexport interface StartDevServerOptions extends ResolveConfigOptions {\n watch?: boolean;\n}\n\nexport async function startDevServer(\n options: StartDevServerOptions = {}\n): Promise<DevServer> {\n if (options.watch) {\n return startWatchingDevServer(options);\n }\n const instance = await createServerInstance(options, false);\n return createServerHandle(\n () => instance,\n () => undefined\n );\n}\n\nasync function startWatchingDevServer(\n options: StartDevServerOptions\n): Promise<DevServer> {\n let instance = await createServerInstance(options, true);\n let watcher = createProjectWatcher(instance, onChange);\n\n async function onChange(changedPath: string): Promise<void> {\n const configFile = instance.config.configFile;\n const configRelativePath =\n configFile === undefined\n ? undefined\n : toRelativePath(instance.config.root, configFile);\n if (configRelativePath === changedPath) {\n await restart();\n return;\n }\n await rebuildAndReload();\n }\n\n async function rebuildAndReload(): Promise<void> {\n const entries = [...new Set(Object.values(instance.config.pages))];\n instance.markDirty(entries);\n for (const entry of entries) {\n const bundle = await instance.getBundle(entry);\n if (bundle instanceof Response) {\n console.error(\n 'TransOne rebuild failed; keeping the last working page.'\n );\n return;\n }\n }\n instance.liveReload?.broadcast();\n }\n\n async function restart(): Promise<void> {\n watcher.dispose();\n await instance.server.stop(true);\n await instance.dispose();\n instance = await createServerInstance(options, true);\n watcher = createProjectWatcher(instance, onChange);\n console.log(\n `TransOne dev server restarted at http://${instance.server.hostname}:${instance.server.port}`\n );\n }\n\n return createServerHandle(\n () => instance,\n () => watcher.dispose()\n );\n}\n\nfunction createProjectWatcher(\n instance: DevServerInstance,\n onChange: (changedPath: string) => Promise<void>\n): FileWatcher {\n return createFileWatcher({\n root: instance.config.root,\n isRelevant: (relativePath) => isWatchedFile(instance, relativePath),\n onChange: (changedPath) => {\n void onChange(changedPath);\n },\n });\n}\n\ninterface DevServerInstance {\n server: DevServer;\n config: ResolvedConfig;\n getBundle: (\n entry: string,\n acquire?: boolean\n ) => Promise<DevelopmentBundle | Response>;\n markDirty: (entries: string[]) => void;\n dispose: () => Promise<void>;\n liveReload: LiveReloadHub | undefined;\n}\n\nasync function createServerInstance(\n options: StartDevServerOptions,\n watch: boolean\n): Promise<DevServerInstance> {\n const config = await resolveConfig(options);\n // 动态加载:project.ts 依赖 'transone/dom'(框架 dist 的 DOM 渲染\n // 模块),仅在需要预渲染页面 HTML 时加载,避免 dev/build 其他路径被拖累。\n const { renderProjectHtml } = await import('./project');\n for (const [route, entry] of Object.entries(config.pages)) {\n await renderProjectHtml(config, {}, entry, route);\n }\n const developmentOutDir = resolve(config.root, 'dist', 'dev', 'h5');\n await assertSafeSubdirectory(\n config.root,\n developmentOutDir,\n INVALID_DEVELOPMENT_DIRECTORY_MESSAGE\n );\n const proxy = createProxyHandler(config.server.proxy);\n const sessionId = createGenerationId();\n const sessionOutDir = resolve(developmentOutDir, sessionId);\n const artifacts = new Map<string, DevelopmentOutput>();\n const buildProject = createDevelopmentBuilder(\n sessionId,\n sessionOutDir,\n artifacts\n );\n const liveReload = watch ? createLiveReloadHub() : undefined;\n const bundles = new Map<string, DevelopmentBundle>();\n const dirtyEntries = new Set<string>();\n\n const getBundle = async (\n entry: string,\n acquire = false\n ): Promise<DevelopmentBundle | Response> => {\n const cached = bundles.get(entry);\n if (watch && cached !== undefined && !dirtyEntries.has(entry)) {\n if (acquire) cached.activeRequests += 1;\n return cached;\n }\n const bundle = await buildProject.build(entry);\n if (bundle instanceof Response) {\n if (watch) {\n dirtyEntries.add(entry);\n }\n return bundle;\n }\n if (watch) {\n bundles.set(entry, bundle);\n dirtyEntries.delete(entry);\n }\n if (acquire) bundle.activeRequests += 1;\n return bundle;\n };\n\n const server = Bun.serve({\n hostname: config.server.host,\n port: config.server.port,\n fetch: async (request) => {\n const reloadResponse = liveReload?.handleRequest(request);\n if (reloadResponse) {\n return reloadResponse;\n }\n return (\n (await proxy(request)) ??\n serveProjectRequest(\n request,\n config,\n config.pages,\n getBundle,\n artifacts,\n liveReload\n )\n );\n },\n });\n\n return {\n server,\n config,\n getBundle,\n markDirty: (entries) => {\n entries.forEach((entry) => dirtyEntries.add(entry));\n },\n dispose: buildProject.dispose,\n liveReload,\n };\n}\n\nfunction createServerHandle(\n getInstance: () => DevServerInstance,\n disposeWatcher: () => void\n): DevServer {\n return new Proxy({} as DevServer, {\n get(_target, property) {\n if (property === 'stop') {\n return async (closeActiveConnections?: boolean) => {\n disposeWatcher();\n const instance = getInstance();\n await instance.server.stop(closeActiveConnections);\n await instance.dispose();\n };\n }\n const server = getInstance().server as unknown as Record<\n PropertyKey,\n unknown\n >;\n const value = server[property];\n return typeof value === 'function'\n ? (value as (...args: unknown[]) => unknown).bind(server)\n : value;\n },\n });\n}\n\nasync function serveProjectRequest(\n request: Request,\n config: ResolvedConfig,\n pages: Record<string, string>,\n getBundle: (\n entry: string,\n acquire?: boolean\n ) => Promise<DevelopmentBundle | Response>,\n artifacts: Map<string, DevelopmentOutput>,\n liveReload: LiveReloadHub | undefined\n): Promise<Response> {\n const pathname = new URL(request.url).pathname;\n const route = pageRouteForPathname(pages, pathname);\n\n if (route !== undefined) {\n const entry = pages[route];\n const bundle = await getBundle(entry, true);\n if (bundle instanceof Response) {\n return bundle;\n }\n\n try {\n const { renderProjectHtml } = await import('./project');\n const html = await renderProjectHtml(\n config,\n {\n head: bundle.stylesheets.map(({ pathname: href }) => ({\n tag: 'link',\n attributes: { rel: 'stylesheet', href },\n })),\n scripts: [{ type: 'module', src: bundle.entry.pathname }],\n },\n entry,\n route\n );\n publishDevelopmentBundle(bundle, artifacts);\n return new Response(liveReload ? injectLiveReloadScript(html) : html, {\n headers: {\n 'content-type': 'text/html; charset=utf-8',\n 'cache-control': 'no-store',\n },\n });\n } catch (error: unknown) {\n console.error(error);\n return buildFailureResponse();\n } finally {\n releaseDevelopmentBundle(bundle);\n }\n }\n\n if (pathname === '/bundle.js') {\n const bundle = await getBundle(config.entry, true);\n if (bundle instanceof Response) {\n return bundle;\n }\n\n try {\n publishDevelopmentBundle(bundle, artifacts);\n return new Response(null, {\n status: 307,\n headers: {\n location: bundle.entry.pathname,\n 'cache-control': 'no-store',\n },\n });\n } catch (error: unknown) {\n console.error(error);\n return buildFailureResponse();\n } finally {\n releaseDevelopmentBundle(bundle);\n }\n }\n\n const artifact = artifacts.get(pathname);\n if (artifact) {\n return new Response(Bun.file(artifact.filePath), {\n headers: {\n 'content-type': artifact.type,\n 'cache-control': 'no-store',\n },\n });\n }\n\n // SPA history fallback:H5 端使用 history 模式路由时,刷新/直达深层路径\n // (如 /rankings/metro)在服务端没有对应页面,回落到入口页由前端路由接管。\n // 排除 API 路径与带扩展名的静态资源请求。\n if (\n pathname !== '/' &&\n !pathname.startsWith('/api/') &&\n !/\\.[a-zA-Z0-9]+$/.test(pathname)\n ) {\n const bundle = await getBundle(config.entry, true);\n if (!(bundle instanceof Response)) {\n try {\n const { renderProjectHtml } = await import('./project');\n const html = await renderProjectHtml(\n config,\n {\n head: bundle.stylesheets.map(({ pathname: href }) => ({\n tag: 'link',\n attributes: { rel: 'stylesheet', href },\n })),\n scripts: [{ type: 'module', src: bundle.entry.pathname }],\n },\n config.entry,\n '/'\n );\n publishDevelopmentBundle(bundle, artifacts);\n return new Response(liveReload ? injectLiveReloadScript(html) : html, {\n headers: {\n 'content-type': 'text/html; charset=utf-8',\n 'cache-control': 'no-store',\n },\n });\n } catch (error: unknown) {\n console.error(error);\n return buildFailureResponse();\n } finally {\n releaseDevelopmentBundle(bundle);\n }\n }\n }\n\n return new Response('Not found', {\n status: 404,\n headers: { 'cache-control': 'no-store' },\n });\n}\n\nfunction pageRouteForPathname(\n pages: Record<string, string>,\n pathname: string\n): string | undefined {\n if (pages[pathname] !== undefined) {\n return pathname;\n }\n if (pathname === '/index.html') {\n return '/';\n }\n const candidate =\n pathname.length > 1 && pathname.endsWith('/')\n ? pathname.replace(/\\/+$/, '')\n : pathname;\n if (pages[candidate] !== undefined) {\n return candidate;\n }\n if (candidate.endsWith('/index.html')) {\n const base = candidate.slice(0, candidate.length - '/index.html'.length);\n if (base === '') {\n return '/';\n }\n if (pages[base] !== undefined) {\n return base;\n }\n }\n return undefined;\n}\n\nfunction injectLiveReloadScript(html: string): string {\n if (html.includes(LIVE_RELOAD_PATH)) {\n return html;\n }\n if (html.includes('</body>')) {\n return html.replace('</body>', `${LIVE_RELOAD_CLIENT_SCRIPT}</body>`);\n }\n return html + LIVE_RELOAD_CLIENT_SCRIPT;\n}\n\ninterface LiveReloadHub {\n handleRequest(request: Request): Response | undefined;\n broadcast(): void;\n}\n\nconst reloadEncoder = new TextEncoder();\n\nfunction createLiveReloadHub(): LiveReloadHub {\n const controllers = new Set<ReadableStreamDefaultController<Uint8Array>>();\n\n function handleRequest(request: Request): Response | undefined {\n if (new URL(request.url).pathname !== LIVE_RELOAD_PATH) {\n return undefined;\n }\n\n let streamController:\n ReadableStreamDefaultController<Uint8Array> | undefined;\n const stream = new ReadableStream<Uint8Array>({\n start: (controller) => {\n streamController = controller;\n controllers.add(controller);\n try {\n controller.enqueue(reloadEncoder.encode(': connected\\n\\n'));\n } catch {\n controllers.delete(controller);\n }\n },\n cancel: () => {\n if (streamController) {\n controllers.delete(streamController);\n }\n },\n });\n\n return new Response(stream, {\n headers: {\n 'content-type': 'text/event-stream',\n 'cache-control': 'no-store',\n },\n });\n }\n\n function broadcast(): void {\n const message = reloadEncoder.encode('event: reload\\ndata: {}\\n\\n');\n for (const controller of [...controllers]) {\n try {\n controller.enqueue(message);\n } catch {\n controllers.delete(controller);\n }\n }\n }\n\n return { handleRequest, broadcast };\n}\n\nfunction isWatchedFile(\n instance: DevServerInstance,\n relativePath: string\n): boolean {\n if (relativePath === '' || relativePath.startsWith('..')) {\n return false;\n }\n const segments = relativePath.split('/');\n if (segments.some((segment) => IGNORED_WATCH_SEGMENTS.has(segment))) {\n return false;\n }\n const absolutePath = resolve(instance.config.root, relativePath);\n if (isWithinOrEqual(instance.config.build.outDir, absolutePath)) {\n return false;\n }\n const base = basename(absolutePath);\n if (base.startsWith('.') && absolutePath !== instance.config.configFile) {\n return false;\n }\n return WATCHED_EXTENSIONS.has(extname(base).toLowerCase());\n}\n\nfunction toRelativePath(root: string, absolutePath: string): string {\n return relative(root, absolutePath).split(sep).join('/');\n}\n\nfunction isWithinOrEqual(parent: string, candidate: string): boolean {\n const pathFromParent = relative(parent, candidate);\n return (\n pathFromParent === '' ||\n (pathFromParent !== '..' &&\n !pathFromParent.startsWith(`..${sep}`) &&\n !isAbsolute(pathFromParent))\n );\n}\n\ninterface DevelopmentOutput {\n filePath: string;\n pathname: string;\n type: string;\n}\n\ninterface DevelopmentBundle {\n outDir: string;\n activeRequests: number;\n retire?: () => void;\n entry: DevelopmentOutput;\n stylesheets: DevelopmentOutput[];\n artifacts: ReadonlyMap<string, DevelopmentOutput>;\n}\n\nfunction createDevelopmentBuilder(\n sessionId: string,\n sessionOutDir: string,\n artifacts: Map<string, DevelopmentOutput>\n): {\n build: (entry: string) => Promise<DevelopmentBundle | Response>;\n dispose: () => Promise<void>;\n} {\n let queue = Promise.resolve();\n let disposed = false;\n let disposal: Promise<void> | undefined;\n const latestBundles = new Map<string, DevelopmentBundle>();\n const retirementTimers = new Map<string, ReturnType<typeof setTimeout>>();\n\n function retire(bundle: DevelopmentBundle): void {\n bundle.retire = () => {\n const previousTimer = retirementTimers.get(bundle.outDir);\n if (previousTimer) clearTimeout(previousTimer);\n retirementTimers.delete(bundle.outDir);\n if (disposed || bundle.activeRequests > 0) return;\n // Let the browser finish loading the HTML response's assets before\n // removing this generation, including when SSR took longer than usual.\n const timer = setTimeout(() => {\n retirementTimers.delete(bundle.outDir);\n void removeDevelopmentBundle(bundle, artifacts).catch(\n (error: unknown) => console.error(error)\n );\n }, DEVELOPMENT_OUTPUT_RETENTION_MS);\n timer.unref();\n retirementTimers.set(bundle.outDir, timer);\n };\n bundle.retire();\n }\n\n function build(entry: string): Promise<DevelopmentBundle | Response> {\n const result = queue.then(async () => {\n if (disposed) return buildFailureResponse();\n const bundle = await buildProjectBundle(entry, sessionId, sessionOutDir);\n if (!(bundle instanceof Response)) {\n const previous = latestBundles.get(entry);\n latestBundles.set(entry, bundle);\n if (previous) retire(previous);\n }\n return bundle;\n });\n queue = result.then(\n () => undefined,\n () => undefined\n );\n return result;\n }\n\n function dispose(): Promise<void> {\n if (disposal) return disposal;\n disposed = true;\n retirementTimers.forEach((timer) => clearTimeout(timer));\n retirementTimers.clear();\n disposal = queue.then(async () => {\n await rm(sessionOutDir, { recursive: true, force: true });\n latestBundles.clear();\n artifacts.clear();\n });\n return disposal;\n }\n\n return { build, dispose };\n}\n\nfunction releaseDevelopmentBundle(bundle: DevelopmentBundle): void {\n bundle.activeRequests -= 1;\n bundle.retire?.();\n}\n\nasync function removeDevelopmentBundle(\n bundle: DevelopmentBundle,\n artifacts: Map<string, DevelopmentOutput>\n): Promise<void> {\n await rm(bundle.outDir, { recursive: true, force: true });\n for (const pathname of bundle.artifacts.keys()) {\n artifacts.delete(pathname);\n }\n}\n\nasync function buildProjectBundle(\n entry: string,\n sessionId: string,\n sessionOutDir: string\n): Promise<DevelopmentBundle | Response> {\n const generationId = createGenerationId();\n const generationOutDir = resolve(sessionOutDir, generationId);\n const generationUrl = `${DEVELOPMENT_URL_PREFIX}/${sessionId}/${generationId}`;\n const buildOptions = {\n entrypoints: [entry],\n outdir: generationOutDir,\n target: 'browser' as const,\n format: 'esm' as const,\n sourcemap: 'inline' as const,\n write: true,\n throw: false,\n publicPath: `${generationUrl}/`,\n naming: {\n entry: '[name]-[hash].[ext]',\n chunk: '[name]-[hash].[ext]',\n asset: 'assets/[name]-[hash].[ext]',\n },\n };\n\n let success = false;\n try {\n const result = await Bun.build(buildOptions);\n const entryArtifact = result.outputs.find(isEntryJavaScriptOutput);\n if (!result.success || !entryArtifact) {\n result.logs.forEach((log) => console.error(log));\n if (!entryArtifact) {\n console.error('Failed to build project bundle: no JavaScript output');\n }\n return buildFailureResponse();\n }\n\n const pendingArtifacts = new Map<string, DevelopmentOutput>();\n const outputs = new Map<\n Awaited<ReturnType<typeof Bun.build>>['outputs'][number],\n DevelopmentOutput\n >();\n\n for (const output of result.outputs) {\n const developmentOutput = createDevelopmentOutput(\n generationOutDir,\n generationUrl,\n output\n );\n if (pendingArtifacts.has(developmentOutput.pathname)) {\n throw new Error(\n `Development output URL collision: ${developmentOutput.pathname}`\n );\n }\n pendingArtifacts.set(developmentOutput.pathname, developmentOutput);\n outputs.set(output, developmentOutput);\n }\n\n const entry = outputs.get(entryArtifact);\n if (!entry) {\n throw new Error('Development entry output was not indexed');\n }\n\n success = true;\n return {\n outDir: generationOutDir,\n activeRequests: 0,\n entry,\n stylesheets: result.outputs\n .filter(isStylesheetOutput)\n .map((output) => outputs.get(output))\n .filter((output): output is DevelopmentOutput => output !== undefined),\n artifacts: pendingArtifacts,\n };\n } catch (error: unknown) {\n console.error(error);\n return buildFailureResponse();\n } finally {\n if (!success) {\n await rm(generationOutDir, { recursive: true, force: true });\n }\n }\n}\n\nfunction publishDevelopmentBundle(\n bundle: DevelopmentBundle,\n artifacts: Map<string, DevelopmentOutput>\n): void {\n for (const [pathname, output] of bundle.artifacts) {\n const existing = artifacts.get(pathname);\n if (existing) {\n if (existing.filePath === output.filePath) {\n continue;\n }\n throw new Error(`Development output URL collision: ${pathname}`);\n }\n artifacts.set(pathname, output);\n }\n}\n\nfunction createDevelopmentOutput(\n generationOutDir: string,\n generationUrl: string,\n output: Awaited<ReturnType<typeof Bun.build>>['outputs'][number]\n): DevelopmentOutput {\n const filePath = resolve(output.path);\n const pathFromGeneration = relative(generationOutDir, filePath);\n if (\n pathFromGeneration === '' ||\n pathFromGeneration === '..' ||\n pathFromGeneration.startsWith(`..${sep}`) ||\n isAbsolute(pathFromGeneration)\n ) {\n throw new Error(\n `Development output must not escape outside its generation directory: ${output.path}`\n );\n }\n\n const urlPath = pathFromGeneration\n .split(sep)\n .map((segment) => encodeURIComponent(segment))\n .join('/');\n\n return {\n filePath,\n pathname: `${generationUrl}/${urlPath}`,\n type: output.type,\n };\n}\n\nfunction createGenerationId(): string {\n return randomUUID().replace(/-/g, '');\n}\n\nfunction buildFailureResponse(): Response {\n return new Response('Failed to build project bundle', {\n status: 500,\n headers: { 'cache-control': 'no-store' },\n });\n}\n",
|
|
21
21
|
"import type { ProxyOptions, ServerConfig } from './types';\n\nconst HOP_BY_HOP_HEADERS = new Set([\n 'connection',\n 'keep-alive',\n 'proxy-authenticate',\n 'proxy-authorization',\n 'te',\n 'trailer',\n 'transfer-encoding',\n 'upgrade',\n]);\n\ninterface ProxyRule {\n prefix: string;\n target: URL;\n changeOrigin: boolean;\n rewrite?: (path: string) => string;\n}\n\nexport function createProxyHandler(\n proxy: ServerConfig['proxy']\n): (request: Request) => Promise<Response | undefined> {\n const rules = Object.entries(proxy ?? {})\n .map(([prefix, options]) => toProxyRule(prefix, options))\n .sort((first, second) => second.prefix.length - first.prefix.length);\n\n return async (request) => {\n const sourceUrl = new URL(request.url);\n const rule = rules.find(({ prefix }) =>\n sourceUrl.pathname.startsWith(prefix)\n );\n\n if (!rule) {\n return undefined;\n }\n\n const target = createTargetUrl(rule, sourceUrl);\n const headers = createRequestHeaders(request, sourceUrl, rule, target);\n const body =\n request.method === 'GET' || request.method === 'HEAD'\n ? undefined\n : request.body;\n\n try {\n const upstream = await fetch(target, {\n method: request.method,\n headers,\n body,\n signal: request.signal,\n redirect: 'manual',\n });\n\n return new Response(upstream.body, {\n status: upstream.status,\n statusText: upstream.statusText,\n headers: filterHeaders(upstream.headers),\n });\n } catch {\n return new Response('Bad Gateway', { status: 502 });\n }\n };\n}\n\nfunction toProxyRule(prefix: string, value: string | ProxyOptions): ProxyRule {\n const options = typeof value === 'string' ? { target: value } : value;\n\n return {\n prefix,\n target: new URL(options.target),\n changeOrigin: options.changeOrigin ?? false,\n ...(options.rewrite === undefined ? {} : { rewrite: options.rewrite }),\n };\n}\n\nfunction createTargetUrl(rule: ProxyRule, sourceUrl: URL): URL {\n const target = new URL(rule.target);\n const pathname = rule.rewrite?.(sourceUrl.pathname) ?? sourceUrl.pathname;\n\n target.pathname = joinPathnames(target.pathname, pathname);\n target.search = sourceUrl.search;\n return target;\n}\n\nfunction joinPathnames(basePathname: string, pathname: string): string {\n const base = basePathname === '/' ? '' : basePathname.replace(/\\/+$/, '');\n const path = pathname.startsWith('/') ? pathname : `/${pathname}`;\n\n return `${base}${path}` || '/';\n}\n\nfunction createRequestHeaders(\n request: Request,\n sourceUrl: URL,\n rule: ProxyRule,\n target: URL\n): Headers {\n const headers = filterHeaders(request.headers);\n const incomingHost = request.headers.get('host') ?? sourceUrl.host;\n\n headers.set('host', rule.changeOrigin ? target.host : incomingHost);\n return headers;\n}\n\nfunction filterHeaders(source: Headers): Headers {\n const headers = new Headers(source);\n const connection = headers.get('connection');\n\n if (connection) {\n connection.split(',').forEach((header) => {\n const name = header.trim();\n if (name) {\n headers.delete(name);\n }\n });\n }\n\n HOP_BY_HOP_HEADERS.forEach((header) => headers.delete(header));\n return headers;\n}\n",
|
|
22
22
|
"import { watch, type FSWatcher } from 'node:fs';\nimport { readdir, stat } from 'node:fs/promises';\nimport { isAbsolute, join, relative } from 'node:path';\n\nconst RECURSIVE_WATCH_UNSUPPORTED_ERROR = 'ERR_FEATURE_UNAVAILABLE_ON_PLATFORM';\nconst DEFAULT_DEBOUNCE_MS = 100;\nconst DEFAULT_POLL_INTERVAL_MS = 300;\n\nexport interface FileWatcherOptions {\n root: string;\n isRelevant: (relativePath: string) => boolean;\n onChange: (changedPath: string) => void;\n debounceMs?: number;\n pollIntervalMs?: number;\n}\n\nexport interface FileWatcher {\n dispose: () => void;\n}\n\nexport function createFileWatcher(options: FileWatcherOptions): FileWatcher {\n const debounceMs = options.debounceMs ?? DEFAULT_DEBOUNCE_MS;\n let timer: ReturnType<typeof setTimeout> | undefined;\n const disposers: Array<() => void> = [];\n\n const scheduleChange = (relativePath: string): void => {\n if (timer) {\n clearTimeout(timer);\n }\n timer = setTimeout(() => {\n timer = undefined;\n options.onChange(relativePath);\n }, debounceMs);\n };\n\n disposers.push(() => {\n if (timer) {\n clearTimeout(timer);\n }\n });\n\n const nativeWatcher = tryCreateNativeWatcher(\n options.root,\n options.isRelevant,\n scheduleChange\n );\n if (nativeWatcher) {\n disposers.push(nativeWatcher);\n } else {\n disposers.push(\n createPollingWatcher(\n options.root,\n options.isRelevant,\n options.pollIntervalMs ?? DEFAULT_POLL_INTERVAL_MS,\n scheduleChange\n )\n );\n }\n\n return {\n dispose: () => {\n disposers.splice(0).reverse().forEach((dispose) => dispose());\n },\n };\n}\n\nfunction tryCreateNativeWatcher(\n root: string,\n isRelevant: (relativePath: string) => boolean,\n onRelevantChange: (relativePath: string) => void\n): (() => void) | undefined {\n let watcher: FSWatcher;\n try {\n watcher = watch(root, { recursive: true }, (_event, filename) => {\n if (typeof filename !== 'string') {\n return;\n }\n const relativePath = toRelativePath(root, filename);\n if (relativePath === undefined || !isRelevant(relativePath)) {\n return;\n }\n onRelevantChange(relativePath);\n });\n } catch (error: unknown) {\n if (isRecursiveWatchUnsupported(error)) {\n return undefined;\n }\n throw error;\n }\n\n return () => watcher.close();\n}\n\nfunction createPollingWatcher(\n root: string,\n isRelevant: (relativePath: string) => boolean,\n intervalMs: number,\n onRelevantChange: (relativePath: string) => void\n): () => void {\n let running = true;\n let snapshot = new Map<string, FileSnapshot>();\n let timer: ReturnType<typeof setInterval> | undefined;\n\n const scan = async (): Promise<void> => {\n if (!running) {\n return;\n }\n const next = new Map<string, FileSnapshot>();\n try {\n await collectRelevantFiles(root, isRelevant, next);\n } catch {\n return;\n }\n\n let changedPath: string | undefined;\n for (const [relativePath, snapshotEntry] of next) {\n const previous = snapshot.get(relativePath);\n if (\n !previous ||\n previous.mtimeMs !== snapshotEntry.mtimeMs ||\n previous.size !== snapshotEntry.size\n ) {\n changedPath = relativePath;\n break;\n }\n }\n if (changedPath === undefined) {\n for (const relativePath of snapshot.keys()) {\n if (!next.has(relativePath)) {\n changedPath = relativePath;\n break;\n }\n }\n }\n snapshot = next;\n if (changedPath !== undefined) {\n onRelevantChange(changedPath);\n }\n };\n\n void scan();\n timer = setInterval(() => {\n void scan();\n }, intervalMs);\n if (typeof timer.unref === 'function') {\n timer.unref();\n }\n\n return () => {\n running = false;\n if (timer) {\n clearInterval(timer);\n }\n };\n}\n\ninterface FileSnapshot {\n mtimeMs: number;\n size: number;\n}\n\nasync function collectRelevantFiles(\n root: string,\n isRelevant: (relativePath: string) => boolean,\n output: Map<string, FileSnapshot>\n): Promise<void> {\n const pendingDirectories = [''];\n while (pendingDirectories.length > 0) {\n const relativeDirectory = pendingDirectories.pop();\n if (relativeDirectory === undefined) {\n break;\n }\n const absoluteDirectory = join(root, relativeDirectory);\n let entries;\n try {\n entries = await readdir(absoluteDirectory, { withFileTypes: true });\n } catch {\n continue;\n }\n\n for (const entry of entries) {\n const relativePath =\n relativeDirectory === '' ? entry.name : `${relativeDirectory}/${entry.name}`;\n if (entry.isDirectory()) {\n pendingDirectories.push(relativePath);\n continue;\n }\n if (!entry.isFile() || !isRelevant(relativePath)) {\n continue;\n }\n try {\n const info = await stat(join(root, relativePath));\n output.set(relativePath, { mtimeMs: info.mtimeMs, size: info.size });\n } catch {\n // The file vanished while the tree was being scanned.\n }\n }\n }\n}\n\nfunction toRelativePath(root: string, filename: string): string | undefined {\n const relativePath = isAbsolute(filename)\n ? relative(root, filename)\n : filename.split('\\\\').join('/');\n if (relativePath === '' || relativePath === '..' || relativePath.startsWith('../')) {\n return undefined;\n }\n return relativePath.split('\\\\').join('/');\n}\n\nfunction isRecursiveWatchUnsupported(error: unknown): boolean {\n return (\n typeof error === 'object' &&\n error !== null &&\n 'code' in error &&\n error.code === RECURSIVE_WATCH_UNSUPPORTED_ERROR\n );\n}\n"
|
|
23
23
|
],
|
|
24
|
-
"mappings": "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",
|
|
25
|
-
"debugId": "
|
|
24
|
+
"mappings": "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",
|
|
25
|
+
"debugId": "8A1F36BF60A5A63464756E2164756E21",
|
|
26
26
|
"names": []
|
|
27
27
|
}
|
package/dist/index.js
CHANGED