feat(worker): 添加微信小游戏 Worker 支持和 Worker Generator CLI (#297)
* feat(worker): 添加微信小游戏 Worker 支持和 Worker Generator CLI - 新增 @esengine/worker-generator 包,用于从 WorkerEntitySystem 生成 Worker 文件 - WorkerEntitySystem 添加 workerScriptPath 配置项,支持预编译 Worker 脚本 - CLI 工具支持 --wechat 模式,自动转换 ES6+ 为 ES5 语法 - 修复微信小游戏 Worker 消息格式差异(res 直接是数据,无需 .data) - 更新中英文文档,添加微信小游戏支持章节 * docs: 更新 changelog,添加 v2.3.1 说明并标注 v2.3.0 为废弃 * fix: 修复 CI 检查问题 - 移除 cli.ts 中未使用的 toKebabCase 函数 - 修复 generator.ts 中正则表达式的 ReDoS 风险(使用 [ \t] 替代 \s*) - 更新 changelog 版本号(2.3.1 -> 2.3.2) * docs: 移除未发布版本的 changelog 条目 * fix(worker-generator): 使用 TypeScript 编译器替代手写正则进行 ES5 转换 - 修复 CodeQL 检测的 ReDoS 安全问题 - 使用 ts.transpileModule 进行安全可靠的代码转换 - 移除所有可能导致回溯的正则表达式
This commit is contained in:
41
packages/worker-generator/src/index.ts
Normal file
41
packages/worker-generator/src/index.ts
Normal file
@@ -0,0 +1,41 @@
|
||||
/**
|
||||
* @esengine/worker-generator
|
||||
*
|
||||
* CLI tool to generate Worker files from WorkerEntitySystem classes
|
||||
* for WeChat Mini Game and other platforms that require pre-compiled Worker scripts.
|
||||
*
|
||||
* 从 WorkerEntitySystem 子类生成 Worker 文件的 CLI 工具
|
||||
* 用于微信小游戏等需要预编译 Worker 脚本的平台
|
||||
*
|
||||
* @example
|
||||
* ```bash
|
||||
* # CLI 使用 | CLI Usage
|
||||
* npx esengine-worker-gen --src ./src --out ./workers --wechat
|
||||
*
|
||||
* # 或者 | Or
|
||||
* pnpm esengine-worker-gen -s ./src -o ./workers -w
|
||||
* ```
|
||||
*
|
||||
* @example
|
||||
* ```typescript
|
||||
* // API 使用 | API Usage
|
||||
* import { parseWorkerSystems, generateWorkerFiles } from '@esengine/worker-generator';
|
||||
*
|
||||
* const systems = parseWorkerSystems({
|
||||
* srcDir: './src',
|
||||
* outDir: './workers',
|
||||
* wechat: true,
|
||||
* });
|
||||
*
|
||||
* const result = generateWorkerFiles(systems, config);
|
||||
* ```
|
||||
*/
|
||||
|
||||
export { parseWorkerSystems } from './parser';
|
||||
export { generateWorkerFiles } from './generator';
|
||||
export type {
|
||||
WorkerSystemInfo,
|
||||
GeneratorConfig,
|
||||
GenerationResult,
|
||||
WorkerScriptMapping,
|
||||
} from './types';
|
||||
Reference in New Issue
Block a user