@hexaijs/plugin-application-builder 0.1.1 → 0.2.0
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/dist/cli.d.ts +0 -2
- package/dist/cli.js +569 -52
- package/dist/cli.js.map +1 -1
- package/dist/decorators/index.d.ts +8 -6
- package/dist/decorators/index.js +13 -31
- package/dist/decorators/index.js.map +1 -1
- package/dist/index.d.ts +48 -5
- package/dist/index.js +596 -15
- package/dist/index.js.map +1 -1
- package/package.json +24 -12
- package/dist/application-builder-generator.d.ts +0 -15
- package/dist/application-builder-generator.d.ts.map +0 -1
- package/dist/application-builder-generator.js +0 -81
- package/dist/application-builder-generator.js.map +0 -1
- package/dist/cli.d.ts.map +0 -1
- package/dist/code-generator.d.ts +0 -30
- package/dist/code-generator.d.ts.map +0 -1
- package/dist/code-generator.js +0 -131
- package/dist/code-generator.js.map +0 -1
- package/dist/config-loader.d.ts +0 -3
- package/dist/config-loader.d.ts.map +0 -1
- package/dist/config-loader.js +0 -65
- package/dist/config-loader.js.map +0 -1
- package/dist/config.d.ts +0 -13
- package/dist/config.d.ts.map +0 -1
- package/dist/config.js +0 -31
- package/dist/config.js.map +0 -1
- package/dist/decorators/index.d.ts.map +0 -1
- package/dist/errors.d.ts +0 -13
- package/dist/errors.d.ts.map +0 -1
- package/dist/errors.js +0 -32
- package/dist/errors.js.map +0 -1
- package/dist/hexai-plugin.d.ts +0 -30
- package/dist/hexai-plugin.d.ts.map +0 -1
- package/dist/hexai-plugin.js +0 -81
- package/dist/hexai-plugin.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/main.d.ts +0 -6
- package/dist/main.d.ts.map +0 -1
- package/dist/main.js +0 -53
- package/dist/main.js.map +0 -1
- package/dist/metadata-extractor.d.ts +0 -25
- package/dist/metadata-extractor.d.ts.map +0 -1
- package/dist/metadata-extractor.js +0 -247
- package/dist/metadata-extractor.js.map +0 -1
- package/dist/test.d.ts +0 -15
- package/dist/test.d.ts.map +0 -1
- package/dist/test.js +0 -104
- package/dist/test.js.map +0 -1
- package/dist/types.d.ts +0 -22
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -3
- package/dist/types.js.map +0 -1
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,+BAAoD;AAA3C,kHAAA,0BAA0B,OAAA;AACnC,2CAKsB;AAJlB,kHAAA,oBAAoB,OAAA;AACpB,gHAAA,kBAAkB,OAAA;AAClB,gHAAA,kBAAkB,OAAA;AAGtB,mCAIkB;AAHd,sHAAA,4BAA4B,OAAA;AAC5B,oHAAA,0BAA0B,OAAA;AAC1B,oHAAA,0BAA0B,OAAA;AAE9B,+CAAgF;AAAvE,yGAAA,SAAS,OAAA"}
|
|
1
|
+
{"version":3,"sources":["../src/errors.ts","../src/metadata-extractor.ts","../src/code-generator.ts","../src/application-builder-generator.ts","../src/config.ts","../src/config-loader.ts","../src/main.ts","../src/decorators/index.ts","../src/hexai-plugin.ts"],"names":["relative","handlers","path2","fs2","fs3","ts2","path3","path4"],"mappings":"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","file":"index.js","sourcesContent":["export class DuplicateCommandHandlerError extends Error {\n constructor(commandClassName: string, handlers: string[]) {\n super(\n `Duplicate command handlers for \"${commandClassName}\": ${handlers.join(\", \")}`\n );\n this.name = \"DuplicateCommandHandlerError\";\n }\n}\n\nexport class DuplicateEventHandlerError extends Error {\n constructor(eventName: string, handlers: string[]) {\n super(\n `Duplicate event handlers for event \"${eventName}\": ${handlers.join(\", \")}`\n );\n this.name = \"DuplicateEventHandlerError\";\n }\n}\n\nexport class DuplicateQueryHandlerError extends Error {\n constructor(queryClassName: string, handlers: string[]) {\n super(\n `Duplicate query handlers for \"${queryClassName}\": ${handlers.join(\", \")}`\n );\n this.name = \"DuplicateQueryHandlerError\";\n }\n}\n\nexport class MessageClassNotFoundError extends Error {\n constructor(messageClassName: string, filePath: string) {\n super(\n `Cannot find \"${messageClassName}\" - not imported and not defined in \"${filePath}\"`\n );\n this.name = \"MessageClassNotFoundError\";\n }\n}\n","import * as fs from \"fs\";\nimport * as path from \"path\";\nimport * as ts from \"typescript\";\nimport {\n HandlerMetadata,\n CommandHandlerMetadata,\n EventHandlerMetadata,\n QueryHandlerMetadata,\n} from \"./types\";\nimport { MessageClassNotFoundError } from \"./errors\";\n\n/**\n * Extracts handler metadata from TypeScript files using AST parsing\n */\nexport class HandlerMetadataExtractor {\n private config: {\n commandHandlerDecorator: string;\n eventHandlerDecorator: string;\n } = {\n commandHandlerDecorator: \"CommandHandlerMarker\",\n eventHandlerDecorator: \"EventHandlerMarker\",\n };\n\n constructor(\n private contextPath: string,\n private outputFile: string,\n config: {\n commandHandlerDecorator?: string;\n eventHandlerDecorator?: string;\n } = {}\n ) {\n if (config.commandHandlerDecorator) {\n this.config.commandHandlerDecorator =\n config.commandHandlerDecorator;\n }\n if (config.eventHandlerDecorator) {\n this.config.eventHandlerDecorator = config.eventHandlerDecorator;\n }\n }\n\n extractHandlersMetadata(files: string[]): HandlerMetadata[] {\n const handlers: HandlerMetadata[] = [];\n\n for (const file of files) {\n const sourceCode = fs.readFileSync(file, \"utf-8\");\n const sourceFile = ts.createSourceFile(\n file,\n sourceCode,\n ts.ScriptTarget.Latest,\n true\n );\n\n ts.forEachChild(sourceFile, (node) => {\n if (ts.isClassDeclaration(node)) {\n const metadata = this.extractFromClass(\n node,\n file,\n sourceFile\n );\n if (metadata) {\n handlers.push(metadata);\n }\n }\n });\n }\n\n return handlers;\n }\n\n private extractFromClass(\n classNode: ts.ClassDeclaration,\n filePath: string,\n sourceFile: ts.SourceFile\n ): HandlerMetadata | null {\n const className = classNode.name?.text;\n if (!className) return null;\n\n // Get decorators using TypeScript 5.0+ API\n const decorators = ts.canHaveDecorators(classNode)\n ? ts.getDecorators(classNode)\n : undefined;\n if (!decorators) return null;\n\n for (const decorator of decorators) {\n const expression = decorator.expression;\n if (!ts.isCallExpression(expression)) continue;\n\n const decoratorName = expression.expression.getText();\n\n if (decoratorName === \"CommandHandlerMarker\") {\n return this.extractCommandHandlerMetadata(\n className,\n expression,\n filePath,\n sourceFile\n );\n }\n\n if (decoratorName === \"EventHandlerMarker\") {\n return this.extractEventHandlerMetadata(\n className,\n expression,\n filePath\n );\n }\n\n if (decoratorName === \"QueryHandlerMarker\") {\n return this.extractQueryHandlerMetadata(\n className,\n expression,\n filePath,\n sourceFile\n );\n }\n }\n\n return null;\n }\n\n private extractMessageHandlerMetadata(\n className: string,\n expression: ts.CallExpression,\n filePath: string,\n sourceFile: ts.SourceFile\n ): { messagePath: string; messageClassName: string } {\n const messageClassArg = expression.arguments[0];\n const messageClassName = messageClassArg!.getText();\n const messageImport = this.findImportForSymbol(\n messageClassName,\n sourceFile\n );\n\n let messagePath = \"\";\n let resolvedMessageClassName = messageClassName;\n\n if (messageImport) {\n const handlerDir = path.dirname(filePath);\n const resolvedImportPath = this.resolvePathAlias(messageImport.path);\n const messageAbsolutePath = path.resolve(\n handlerDir,\n resolvedImportPath + \".ts\"\n );\n messagePath = this.toRelativeImport(messageAbsolutePath);\n resolvedMessageClassName = messageImport.symbol;\n } else if (this.isClassDefinedInFile(messageClassName, sourceFile)) {\n messagePath = this.toRelativeImport(filePath);\n } else {\n throw new MessageClassNotFoundError(messageClassName, filePath);\n }\n\n return {\n messagePath,\n messageClassName: resolvedMessageClassName,\n };\n }\n\n private isClassDefinedInFile(\n className: string,\n sourceFile: ts.SourceFile\n ): boolean {\n for (const statement of sourceFile.statements) {\n if (\n ts.isClassDeclaration(statement) &&\n statement.name?.text === className\n ) {\n return true;\n }\n }\n return false;\n }\n\n private extractCommandHandlerMetadata(\n className: string,\n expression: ts.CallExpression,\n filePath: string,\n sourceFile: ts.SourceFile\n ): CommandHandlerMetadata {\n const { messagePath, messageClassName } = this.extractMessageHandlerMetadata(\n className,\n expression,\n filePath,\n sourceFile\n );\n\n return {\n type: \"command\",\n handlerPath: this.toRelativeImport(filePath),\n handlerClassName: className,\n commandPath: messagePath,\n commandClassName: messageClassName,\n };\n }\n\n private extractEventHandlerMetadata(\n className: string,\n expression: ts.CallExpression,\n filePath: string\n ): EventHandlerMetadata {\n let options = {};\n if (expression.arguments.length > 0) {\n const optionsArg = expression.arguments[0];\n options = this.parseObjectLiteral(optionsArg);\n }\n\n return {\n type: \"event\",\n handlerPath: this.toRelativeImport(filePath),\n handlerClassName: className,\n eventHandlerOptions: options,\n };\n }\n\n private extractQueryHandlerMetadata(\n className: string,\n expression: ts.CallExpression,\n filePath: string,\n sourceFile: ts.SourceFile\n ): QueryHandlerMetadata {\n const { messagePath, messageClassName } = this.extractMessageHandlerMetadata(\n className,\n expression,\n filePath,\n sourceFile\n );\n\n return {\n type: \"query\",\n handlerPath: this.toRelativeImport(filePath),\n handlerClassName: className,\n queryPath: messagePath,\n queryClassName: messageClassName,\n };\n }\n\n private findImportForSymbol(\n symbol: string,\n sourceFile: ts.SourceFile\n ): { path: string; symbol: string } | null {\n for (const statement of sourceFile.statements) {\n if (ts.isImportDeclaration(statement)) {\n const importClause = statement.importClause;\n const moduleSpecifier = (\n statement.moduleSpecifier as ts.StringLiteral\n ).text;\n\n if (\n importClause?.namedBindings &&\n ts.isNamedImports(importClause.namedBindings)\n ) {\n for (const element of importClause.namedBindings.elements) {\n if (element.name.text === symbol) {\n return {\n path: moduleSpecifier,\n symbol: element.name.text,\n };\n }\n }\n }\n }\n }\n\n return null;\n }\n\n private toRelativeImport(absolutePath: string): string {\n const outputFileAbsolutePath = path.join(\n this.contextPath,\n this.outputFile\n );\n const outputDir = path.dirname(outputFileAbsolutePath);\n\n const relative = path.relative(outputDir, absolutePath);\n const withoutExtension = relative.replace(/\\.ts$/, \"\");\n // Ensure relative path has proper prefix\n return withoutExtension.startsWith(\".\")\n ? withoutExtension\n : \"./\" + withoutExtension;\n }\n\n private parseObjectLiteral(node: ts.Node): Record<string, any> {\n if (!ts.isObjectLiteralExpression(node)) {\n return {};\n }\n\n const result: Record<string, any> = {};\n\n for (const property of node.properties) {\n if (ts.isPropertyAssignment(property)) {\n const name = property.name.getText();\n const value = property.initializer;\n\n if (ts.isStringLiteral(value)) {\n result[name] = value.text;\n } else if (ts.isNumericLiteral(value)) {\n result[name] = Number(value.text);\n } else if (value.kind === ts.SyntaxKind.TrueKeyword) {\n result[name] = true;\n } else if (value.kind === ts.SyntaxKind.FalseKeyword) {\n result[name] = false;\n }\n }\n }\n\n return result;\n }\n\n private resolvePathAlias(importPath: string): string {\n const tsconfigPath = path.join(this.contextPath, \"tsconfig.json\");\n if (!fs.existsSync(tsconfigPath)) return importPath;\n\n const tsconfig = JSON.parse(fs.readFileSync(tsconfigPath, \"utf-8\"));\n const paths = tsconfig.compilerOptions?.paths;\n const baseUrl = tsconfig.compilerOptions?.baseUrl || \".\";\n\n if (!paths) return importPath;\n\n for (const [alias, targets] of Object.entries(paths)) {\n const aliasPrefix = alias.replace(\"/*\", \"\");\n if (importPath.startsWith(aliasPrefix)) {\n const targetBase = (targets as string[])[0].replace(\"/*\", \"\");\n const resolvedBase = path.join(this.contextPath, baseUrl, targetBase);\n return importPath.replace(aliasPrefix, resolvedBase);\n }\n }\n\n return importPath;\n }\n}\n","import { BuildPluginConfig } from \"./config\";\nimport {\n DuplicateCommandHandlerError,\n DuplicateEventHandlerError,\n DuplicateQueryHandlerError,\n} from \"./errors\";\nimport {\n HandlerMetadata,\n CommandHandlerMetadata,\n EventHandlerMetadata,\n QueryHandlerMetadata,\n} from \"./types\";\n\n/**\n * Generates TypeScript code for ApplicationBuilder\n */\nexport class ApplicationCodeGenerator {\n constructor(private config: BuildPluginConfig) {}\n\n generateCode(handlers: HandlerMetadata[]): string {\n this.validateNoDuplicates(handlers);\n const imports = this.collectImports(handlers);\n const registrations = this.generateRegistrations(handlers);\n return this.assembleGeneratedCode(imports, registrations);\n }\n\n private validateNoDuplicates(handlers: HandlerMetadata[]): void {\n this.validateNoDuplicateCommandHandlers(handlers);\n this.validateNoDuplicateEventHandlers(handlers);\n this.validateNoDuplicateQueryHandlers(handlers);\n }\n\n private validateNoDuplicateHandlers<T extends HandlerMetadata>(\n handlers: HandlerMetadata[],\n typeFilter: (h: HandlerMetadata) => h is T,\n keyExtractor: (h: T) => string,\n errorFactory: (key: string, handlers: string[]) => Error\n ): void {\n const filteredHandlers = handlers.filter(typeFilter);\n\n const keyToHandlers = new Map<string, string[]>();\n for (const handler of filteredHandlers) {\n const key = keyExtractor(handler);\n const existing = keyToHandlers.get(key) ?? [];\n existing.push(handler.handlerClassName);\n keyToHandlers.set(key, existing);\n }\n\n for (const [key, handlerList] of keyToHandlers) {\n if (handlerList.length > 1) {\n throw errorFactory(key, handlerList);\n }\n }\n }\n\n private validateNoDuplicateCommandHandlers(\n handlers: HandlerMetadata[]\n ): void {\n this.validateNoDuplicateHandlers(\n handlers,\n (h): h is CommandHandlerMetadata => h.type === \"command\",\n (h) => h.commandClassName,\n (key, handlers) => new DuplicateCommandHandlerError(key, handlers)\n );\n }\n\n private validateNoDuplicateEventHandlers(\n handlers: HandlerMetadata[]\n ): void {\n const eventHandlers = handlers.filter(\n (h): h is EventHandlerMetadata => h.type === \"event\"\n );\n\n const namedEventHandlers = eventHandlers.filter(\n (h) => h.eventHandlerOptions.name !== undefined\n );\n\n this.validateNoDuplicateHandlers(\n namedEventHandlers,\n (h): h is EventHandlerMetadata => true,\n (h) => h.eventHandlerOptions.name!,\n (key, handlers) => new DuplicateEventHandlerError(key, handlers)\n );\n }\n\n private validateNoDuplicateQueryHandlers(\n handlers: HandlerMetadata[]\n ): void {\n this.validateNoDuplicateHandlers(\n handlers,\n (h): h is QueryHandlerMetadata => h.type === \"query\",\n (h) => h.queryClassName,\n (key, handlers) => new DuplicateQueryHandlerError(key, handlers)\n );\n }\n\n private createImportStatement(\n symbolName: string,\n importPath: string\n ): string {\n return `import { ${symbolName} } from '${importPath}';`;\n }\n\n private createCommandHandlerRegistration(\n commandClassName: string,\n handlerClassName: string\n ): string {\n return ` .withCommandHandler(${commandClassName}, () => new ${handlerClassName}())`;\n }\n\n private createEventHandlerRegistration(\n handlerClassName: string,\n eventName?: string\n ): string {\n const nameArg = eventName ? `, '${eventName}'` : \"\";\n return ` .withEventHandler(() => new ${handlerClassName}()${nameArg})`;\n }\n\n private createQueryHandlerRegistration(\n queryClassName: string,\n handlerClassName: string\n ): string {\n return ` .withQueryHandler(${queryClassName}, () => new ${handlerClassName}())`;\n }\n\n private isCommandHandler(\n handler: HandlerMetadata\n ): handler is CommandHandlerMetadata {\n return handler.type === \"command\";\n }\n\n private isEventHandler(\n handler: HandlerMetadata\n ): handler is EventHandlerMetadata {\n return handler.type === \"event\";\n }\n\n private isQueryHandler(\n handler: HandlerMetadata\n ): handler is QueryHandlerMetadata {\n return handler.type === \"query\";\n }\n\n private collectImports(handlers: HandlerMetadata[]): Set<string> {\n const imports = new Set<string>();\n imports.add(\n this.createImportStatement(\n \"ApplicationBuilder\",\n this.config.applicationBuilderImportPath\n )\n );\n\n for (const handler of handlers) {\n imports.add(\n this.createImportStatement(\n handler.handlerClassName,\n handler.handlerPath\n )\n );\n\n if (this.isCommandHandler(handler) && handler.commandPath) {\n imports.add(\n this.createImportStatement(\n handler.commandClassName,\n handler.commandPath\n )\n );\n }\n\n if (this.isQueryHandler(handler) && handler.queryPath) {\n imports.add(\n this.createImportStatement(\n handler.queryClassName,\n handler.queryPath\n )\n );\n }\n }\n\n return imports;\n }\n\n private generateRegistrations(handlers: HandlerMetadata[]): string[] {\n const commandRegistrations =\n this.generateCommandRegistrations(handlers);\n const queryRegistrations = this.generateQueryRegistrations(handlers);\n const eventRegistrations = this.generateEventRegistrations(handlers);\n return [...commandRegistrations, ...queryRegistrations, ...eventRegistrations];\n }\n\n private generateCommandRegistrations(\n handlers: HandlerMetadata[]\n ): string[] {\n return handlers\n .filter((h): h is CommandHandlerMetadata =>\n this.isCommandHandler(h)\n )\n .map((h) =>\n this.createCommandHandlerRegistration(\n h.commandClassName,\n h.handlerClassName\n )\n );\n }\n\n private generateQueryRegistrations(\n handlers: HandlerMetadata[]\n ): string[] {\n return handlers\n .filter((h): h is QueryHandlerMetadata =>\n this.isQueryHandler(h)\n )\n .map((h) =>\n this.createQueryHandlerRegistration(\n h.queryClassName,\n h.handlerClassName\n )\n );\n }\n\n private generateEventRegistrations(handlers: HandlerMetadata[]): string[] {\n return handlers\n .filter((h): h is EventHandlerMetadata => this.isEventHandler(h))\n .map((handler) => {\n this.validateEventHandlerOptions(handler);\n const eventName = handler.eventHandlerOptions.name;\n return this.createEventHandlerRegistration(\n handler.handlerClassName,\n eventName\n );\n });\n }\n\n private validateEventHandlerOptions(handler: EventHandlerMetadata): void {\n const options = handler.eventHandlerOptions;\n const invalidKeys = Object.keys(options).filter(\n (key) => key !== \"name\"\n );\n\n if (invalidKeys.length > 0) {\n throw new Error(\n `EventHandler for ${handler.handlerClassName} has invalid options: ${invalidKeys.join(\", \")}.\\n` +\n `Only 'name' option is supported. Use @EventHandler({ name: 'event-name' })`\n );\n }\n }\n\n private assembleGeneratedCode(\n imports: Set<string>,\n registrations: string[]\n ): string {\n const registrationCode =\n registrations.length > 0 ? \"\\n\" + registrations.join(\"\\n\") : \"\";\n\n return `\n${Array.from(imports).join(\"\\n\")}\n\nexport function createApplicationBuilder(): ApplicationBuilder {\n return new ApplicationBuilder()${registrationCode};\n}\n`;\n }\n}\n","import * as fs from \"fs\";\nimport * as path from \"path\";\nimport { glob } from \"glob\";\nimport { BuildPluginConfig } from \"./config\";\nimport { HandlerMetadataExtractor } from \"./metadata-extractor\";\nimport { ApplicationCodeGenerator } from \"./code-generator\";\n\n/**\n * Orchestrates the application builder generation process\n */\nexport class ApplicationBuilderGenerator {\n private metadataExtractor: HandlerMetadataExtractor;\n private codeGenerator: ApplicationCodeGenerator;\n\n constructor(\n private contextPath: string,\n private config: BuildPluginConfig\n ) {\n this.metadataExtractor = new HandlerMetadataExtractor(\n contextPath,\n config.outputFile\n );\n this.codeGenerator = new ApplicationCodeGenerator(config);\n }\n\n async generate(): Promise<void> {\n const handlerFiles = await this.scanHandlerFiles();\n const handlers = this.metadataExtractor.extractHandlersMetadata(handlerFiles);\n const code = this.codeGenerator.generateCode(handlers);\n this.writeToFile(code);\n }\n\n private async scanHandlerFiles(): Promise<string[]> {\n const allFiles: string[] = [];\n\n for (const pattern of this.config.handlers) {\n const files = await glob(pattern, {\n cwd: this.contextPath,\n absolute: true,\n });\n allFiles.push(...files);\n }\n\n return allFiles.sort();\n }\n\n private writeToFile(code: string): void {\n const outputFile = path.join(this.contextPath, this.config.outputFile);\n const outputDir = path.dirname(outputFile);\n\n fs.mkdirSync(outputDir, { recursive: true });\n fs.writeFileSync(outputFile, code, \"utf-8\");\n }\n}\n","export interface RawBuildPluginConfig {\n handlers: string[];\n outputFile?: string;\n applicationBuilderImportPath: string;\n}\n\nexport class BuildPluginConfig {\n public readonly handlers: string[];\n public readonly outputFile: string;\n public readonly applicationBuilderImportPath: string;\n\n private constructor(config: {\n handlers: string[];\n outputFile: string;\n applicationBuilderImportPath: string;\n }) {\n this.handlers = config.handlers;\n this.outputFile = config.outputFile;\n this.applicationBuilderImportPath = config.applicationBuilderImportPath;\n }\n\n static fromRawConfig(raw: RawBuildPluginConfig): BuildPluginConfig {\n // Validate required fields\n if (!raw.applicationBuilderImportPath) {\n throw new Error(\n \"applicationBuilderImportPath is required in hexai.config.ts\\n\" +\n \"Example: { applicationBuilderImportPath: '@/application', ... }\"\n );\n }\n\n if (!raw.handlers || raw.handlers.length === 0) {\n throw new Error(\n \"handlers array is required and must not be empty in hexai.config.ts\"\n );\n }\n\n // Provide defaults\n return new BuildPluginConfig({\n handlers: raw.handlers,\n outputFile:\n raw.outputFile ?? \"src/.generated/application-builder.ts\",\n applicationBuilderImportPath: raw.applicationBuilderImportPath,\n });\n }\n}\n","import * as fs from \"fs\";\nimport * as ts from \"typescript\";\nimport { BuildPluginConfig, RawBuildPluginConfig } from \"./config\";\n\nexport async function loadConfig(configPath: string): Promise<BuildPluginConfig> {\n const configSource = fs.readFileSync(configPath, \"utf-8\");\n const transpiledCode = transpileConfigFile(configSource);\n const moduleExports = evaluateConfigModule(transpiledCode);\n const rawConfig = extractConfigFromModule(moduleExports);\n return BuildPluginConfig.fromRawConfig(rawConfig);\n}\n\nfunction transpileConfigFile(source: string): string {\n const result = ts.transpileModule(source, {\n compilerOptions: {\n module: ts.ModuleKind.CommonJS,\n target: ts.ScriptTarget.ES2020,\n },\n });\n return result.outputText;\n}\n\nfunction evaluateConfigModule(code: string): any {\n const tempModule = { exports: {} };\n const fn = new Function(\"module\", \"exports\", \"require\", code);\n fn(tempModule, tempModule.exports, require);\n return tempModule.exports;\n}\n\nfunction extractConfigFromModule(moduleExports: any): RawBuildPluginConfig {\n return moduleExports.default || moduleExports;\n}\n","import * as path from \"path\";\nimport { ApplicationBuilderGenerator } from \"./application-builder-generator\";\nimport { loadConfig } from \"./config-loader\";\n\n// Re-export types for external use\nexport type {\n HandlerMetadata,\n CommandHandlerMetadata,\n EventHandlerMetadata,\n} from \"./types\";\nexport { HandlerMetadataExtractor } from \"./metadata-extractor\";\n\nexport async function generateApplicationBuilder(\n contextPath: string,\n options: {\n configFile?: string;\n } = {}\n): Promise<void> {\n let configFile = \"hexai.config.ts\";\n if (options.configFile) {\n configFile = options.configFile;\n }\n\n const configPath = path.join(contextPath, configFile);\n const config = await loadConfig(configPath);\n\n const generator = new ApplicationBuilderGenerator(contextPath, config);\n await generator.generate();\n}\n","import type { MessageClass } from \"@hexaijs/core\";\n\nexport interface EventHandlerOptions {\n name?: string;\n}\n\n/**\n * Creates a marker decorator for message handlers (command/query)\n * These are purely markers for build-time code generation with no runtime behavior\n */\nfunction createMessageHandlerMarker() {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n return function (messageClass: MessageClass) {\n return function <T extends { new (...args: any[]): any }>(target: T) {\n return target;\n };\n };\n}\n\n/**\n * Decorator to mark a class as a command handler\n * This is purely a marker for build-time code generation\n */\nexport const CommandHandlerMarker = createMessageHandlerMarker();\n\n/**\n * Decorator to mark a class as a query handler\n * This is purely a marker for build-time code generation\n */\nexport const QueryHandlerMarker = createMessageHandlerMarker();\n\n/**\n * Decorator to mark a class as an event handler\n * This is purely a marker for build-time code generation\n */\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function EventHandlerMarker(options?: EventHandlerOptions) {\n return function <T extends { new (...args: any[]): any }>(target: T) {\n return target;\n };\n}\n","import type { HexaiCliPlugin, CliOption } from \"@hexaijs/cli\";\nimport * as path from \"path\";\nimport { generateApplicationBuilder } from \"./index\";\n\n/**\n * Configuration for the application-builder plugin.\n * Since this plugin uses per-context config files (hexai.config.ts),\n * the root hexai.config.ts config is minimal.\n */\nexport interface ApplicationBuilderPluginConfig {\n /**\n * Default config file name to look for in each context.\n * Defaults to \"hexai.config.ts\".\n */\n configFile?: string;\n}\n\n/**\n * CLI plugin definition for hexai integration.\n *\n * This allows the application builder to be invoked via `pnpm hexai generate-app-builder`.\n * Each bounded context should have its own `hexai.config.ts` file.\n *\n * @example\n * ```bash\n * # Generate for a specific context\n * pnpm hexai generate-app-builder --context-path packages/assignment\n *\n * # Use a custom config file name\n * pnpm hexai generate-app-builder --context-path packages/assignment --config-file custom.config.ts\n * ```\n */\nexport const cliPlugin: HexaiCliPlugin<ApplicationBuilderPluginConfig> = {\n name: \"generate-app-builder\",\n description: \"Generate ApplicationBuilder code from decorated handlers\",\n options: [\n {\n flags: \"-p, --context-path <path>\",\n description: \"Path to the bounded context directory\",\n required: true,\n },\n {\n flags: \"-f, --config-file <name>\",\n description: \"Config file name to use (default: hexai.config.ts)\",\n },\n ] satisfies CliOption[],\n run: async (\n args: Record<string, unknown>,\n config: ApplicationBuilderPluginConfig\n ): Promise<void> => {\n const contextPath = path.resolve(String(args.contextPath));\n\n // Priority: CLI arg > hexai.config.ts plugin config > default\n const configFile =\n args.configFile !== undefined\n ? String(args.configFile)\n : config.configFile;\n\n console.log(`Generating application builder for: ${contextPath}`);\n\n await generateApplicationBuilder(contextPath, {\n configFile,\n });\n\n console.log(\"✓ Application builder generated successfully\");\n },\n};\n"]}
|
package/package.json
CHANGED
|
@@ -3,7 +3,8 @@
|
|
|
3
3
|
"publishConfig": {
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
|
-
"version": "0.
|
|
6
|
+
"version": "0.2.0",
|
|
7
|
+
"type": "module",
|
|
7
8
|
"description": "Build plugin for generating ApplicationBuilder code from decorated handlers",
|
|
8
9
|
"license": "MIT",
|
|
9
10
|
"author": "Sangwoo Hyun <wkdny.hyun@gmail.com>",
|
|
@@ -20,7 +21,16 @@
|
|
|
20
21
|
"bugs": {
|
|
21
22
|
"url": "https://github.com/workingdanny911/hexai/issues"
|
|
22
23
|
},
|
|
23
|
-
"keywords": [
|
|
24
|
+
"keywords": [
|
|
25
|
+
"hexai",
|
|
26
|
+
"hexagonal",
|
|
27
|
+
"clean-architecture",
|
|
28
|
+
"ddd",
|
|
29
|
+
"cqrs",
|
|
30
|
+
"application-builder",
|
|
31
|
+
"code-generation",
|
|
32
|
+
"typescript"
|
|
33
|
+
],
|
|
24
34
|
"files": [
|
|
25
35
|
"dist",
|
|
26
36
|
"LICENSE"
|
|
@@ -29,32 +39,34 @@
|
|
|
29
39
|
"generate-app-builder": "./dist/cli.js"
|
|
30
40
|
},
|
|
31
41
|
"scripts": {
|
|
32
|
-
"test": "
|
|
33
|
-
"build": "
|
|
42
|
+
"test": "vitest run",
|
|
43
|
+
"build": "tsup"
|
|
34
44
|
},
|
|
35
45
|
"exports": {
|
|
36
46
|
".": {
|
|
37
47
|
"types": "./dist/index.d.ts",
|
|
38
|
-
"import": "./dist/index.js"
|
|
39
|
-
"require": "./dist/index.js"
|
|
48
|
+
"import": "./dist/index.js"
|
|
40
49
|
},
|
|
41
50
|
"./decorators": {
|
|
42
51
|
"types": "./dist/decorators/index.d.ts",
|
|
43
|
-
"import": "./dist/decorators/index.js"
|
|
44
|
-
|
|
45
|
-
|
|
52
|
+
"import": "./dist/decorators/index.js"
|
|
53
|
+
},
|
|
54
|
+
"./package.json": "./package.json"
|
|
46
55
|
},
|
|
47
56
|
"dependencies": {
|
|
48
57
|
"glob": "^10.0.0"
|
|
49
58
|
},
|
|
50
59
|
"peerDependencies": {
|
|
51
|
-
"@hexaijs/core": "
|
|
52
|
-
"@hexaijs/application": "
|
|
53
|
-
"@hexaijs/cli": "
|
|
60
|
+
"@hexaijs/core": "^0.5.0",
|
|
61
|
+
"@hexaijs/application": "^0.3.0",
|
|
62
|
+
"@hexaijs/cli": "^0.2.0",
|
|
54
63
|
"typescript": "^5.0.0"
|
|
55
64
|
},
|
|
56
65
|
"devDependencies": {
|
|
66
|
+
"@hexaijs/application": "workspace:^",
|
|
57
67
|
"@hexaijs/cli": "workspace:^",
|
|
68
|
+
"@hexaijs/core": "workspace:^",
|
|
69
|
+
"@hexaijs/tooling": "workspace:*",
|
|
58
70
|
"@types/node": "^20.0.0"
|
|
59
71
|
}
|
|
60
72
|
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { BuildPluginConfig } from "./config";
|
|
2
|
-
/**
|
|
3
|
-
* Orchestrates the application builder generation process
|
|
4
|
-
*/
|
|
5
|
-
export declare class ApplicationBuilderGenerator {
|
|
6
|
-
private contextPath;
|
|
7
|
-
private config;
|
|
8
|
-
private metadataExtractor;
|
|
9
|
-
private codeGenerator;
|
|
10
|
-
constructor(contextPath: string, config: BuildPluginConfig);
|
|
11
|
-
generate(): Promise<void>;
|
|
12
|
-
private scanHandlerFiles;
|
|
13
|
-
private writeToFile;
|
|
14
|
-
}
|
|
15
|
-
//# sourceMappingURL=application-builder-generator.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"application-builder-generator.d.ts","sourceRoot":"","sources":["../src/application-builder-generator.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAI7C;;GAEG;AACH,qBAAa,2BAA2B;IAKhC,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,MAAM;IALlB,OAAO,CAAC,iBAAiB,CAA2B;IACpD,OAAO,CAAC,aAAa,CAA2B;gBAGpC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,iBAAiB;IAS/B,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;YAOjB,gBAAgB;IAc9B,OAAO,CAAC,WAAW;CAOtB"}
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.ApplicationBuilderGenerator = void 0;
|
|
37
|
-
const fs = __importStar(require("fs"));
|
|
38
|
-
const path = __importStar(require("path"));
|
|
39
|
-
const glob_1 = require("glob");
|
|
40
|
-
const metadata_extractor_1 = require("./metadata-extractor");
|
|
41
|
-
const code_generator_1 = require("./code-generator");
|
|
42
|
-
/**
|
|
43
|
-
* Orchestrates the application builder generation process
|
|
44
|
-
*/
|
|
45
|
-
class ApplicationBuilderGenerator {
|
|
46
|
-
contextPath;
|
|
47
|
-
config;
|
|
48
|
-
metadataExtractor;
|
|
49
|
-
codeGenerator;
|
|
50
|
-
constructor(contextPath, config) {
|
|
51
|
-
this.contextPath = contextPath;
|
|
52
|
-
this.config = config;
|
|
53
|
-
this.metadataExtractor = new metadata_extractor_1.HandlerMetadataExtractor(contextPath, config.outputFile);
|
|
54
|
-
this.codeGenerator = new code_generator_1.ApplicationCodeGenerator(config);
|
|
55
|
-
}
|
|
56
|
-
async generate() {
|
|
57
|
-
const handlerFiles = await this.scanHandlerFiles();
|
|
58
|
-
const handlers = this.metadataExtractor.extractHandlersMetadata(handlerFiles);
|
|
59
|
-
const code = this.codeGenerator.generateCode(handlers);
|
|
60
|
-
this.writeToFile(code);
|
|
61
|
-
}
|
|
62
|
-
async scanHandlerFiles() {
|
|
63
|
-
const allFiles = [];
|
|
64
|
-
for (const pattern of this.config.handlers) {
|
|
65
|
-
const files = await (0, glob_1.glob)(pattern, {
|
|
66
|
-
cwd: this.contextPath,
|
|
67
|
-
absolute: true,
|
|
68
|
-
});
|
|
69
|
-
allFiles.push(...files);
|
|
70
|
-
}
|
|
71
|
-
return allFiles.sort();
|
|
72
|
-
}
|
|
73
|
-
writeToFile(code) {
|
|
74
|
-
const outputFile = path.join(this.contextPath, this.config.outputFile);
|
|
75
|
-
const outputDir = path.dirname(outputFile);
|
|
76
|
-
fs.mkdirSync(outputDir, { recursive: true });
|
|
77
|
-
fs.writeFileSync(outputFile, code, "utf-8");
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
exports.ApplicationBuilderGenerator = ApplicationBuilderGenerator;
|
|
81
|
-
//# sourceMappingURL=application-builder-generator.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"application-builder-generator.js","sourceRoot":"","sources":["../src/application-builder-generator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAyB;AACzB,2CAA6B;AAC7B,+BAA4B;AAE5B,6DAAgE;AAChE,qDAA4D;AAE5D;;GAEG;AACH,MAAa,2BAA2B;IAKxB;IACA;IALJ,iBAAiB,CAA2B;IAC5C,aAAa,CAA2B;IAEhD,YACY,WAAmB,EACnB,MAAyB;QADzB,gBAAW,GAAX,WAAW,CAAQ;QACnB,WAAM,GAAN,MAAM,CAAmB;QAEjC,IAAI,CAAC,iBAAiB,GAAG,IAAI,6CAAwB,CACjD,WAAW,EACX,MAAM,CAAC,UAAU,CACpB,CAAC;QACF,IAAI,CAAC,aAAa,GAAG,IAAI,yCAAwB,CAAC,MAAM,CAAC,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,QAAQ;QACV,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,uBAAuB,CAAC,YAAY,CAAC,CAAC;QAC9E,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QACvD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAEO,KAAK,CAAC,gBAAgB;QAC1B,MAAM,QAAQ,GAAa,EAAE,CAAC;QAE9B,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YACzC,MAAM,KAAK,GAAG,MAAM,IAAA,WAAI,EAAC,OAAO,EAAE;gBAC9B,GAAG,EAAE,IAAI,CAAC,WAAW;gBACrB,QAAQ,EAAE,IAAI;aACjB,CAAC,CAAC;YACH,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;QAC5B,CAAC;QAED,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC3B,CAAC;IAEO,WAAW,CAAC,IAAY;QAC5B,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACvE,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAE3C,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7C,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC;CACJ;AA3CD,kEA2CC"}
|
package/dist/cli.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":""}
|
package/dist/code-generator.d.ts
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { BuildPluginConfig } from "./config";
|
|
2
|
-
import { HandlerMetadata } from "./types";
|
|
3
|
-
/**
|
|
4
|
-
* Generates TypeScript code for ApplicationBuilder
|
|
5
|
-
*/
|
|
6
|
-
export declare class ApplicationCodeGenerator {
|
|
7
|
-
private config;
|
|
8
|
-
constructor(config: BuildPluginConfig);
|
|
9
|
-
generateCode(handlers: HandlerMetadata[]): string;
|
|
10
|
-
private validateNoDuplicates;
|
|
11
|
-
private validateNoDuplicateHandlers;
|
|
12
|
-
private validateNoDuplicateCommandHandlers;
|
|
13
|
-
private validateNoDuplicateEventHandlers;
|
|
14
|
-
private validateNoDuplicateQueryHandlers;
|
|
15
|
-
private createImportStatement;
|
|
16
|
-
private createCommandHandlerRegistration;
|
|
17
|
-
private createEventHandlerRegistration;
|
|
18
|
-
private createQueryHandlerRegistration;
|
|
19
|
-
private isCommandHandler;
|
|
20
|
-
private isEventHandler;
|
|
21
|
-
private isQueryHandler;
|
|
22
|
-
private collectImports;
|
|
23
|
-
private generateRegistrations;
|
|
24
|
-
private generateCommandRegistrations;
|
|
25
|
-
private generateQueryRegistrations;
|
|
26
|
-
private generateEventRegistrations;
|
|
27
|
-
private validateEventHandlerOptions;
|
|
28
|
-
private assembleGeneratedCode;
|
|
29
|
-
}
|
|
30
|
-
//# sourceMappingURL=code-generator.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"code-generator.d.ts","sourceRoot":"","sources":["../src/code-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAM7C,OAAO,EACH,eAAe,EAIlB,MAAM,SAAS,CAAC;AAEjB;;GAEG;AACH,qBAAa,wBAAwB;IACrB,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,iBAAiB;IAE7C,YAAY,CAAC,QAAQ,EAAE,eAAe,EAAE,GAAG,MAAM;IAOjD,OAAO,CAAC,oBAAoB;IAM5B,OAAO,CAAC,2BAA2B;IAuBnC,OAAO,CAAC,kCAAkC;IAW1C,OAAO,CAAC,gCAAgC;IAmBxC,OAAO,CAAC,gCAAgC;IAWxC,OAAO,CAAC,qBAAqB;IAO7B,OAAO,CAAC,gCAAgC;IAOxC,OAAO,CAAC,8BAA8B;IAQtC,OAAO,CAAC,8BAA8B;IAOtC,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,cAAc;IAuCtB,OAAO,CAAC,qBAAqB;IAQ7B,OAAO,CAAC,4BAA4B;IAepC,OAAO,CAAC,0BAA0B;IAelC,OAAO,CAAC,0BAA0B;IAalC,OAAO,CAAC,2BAA2B;IAcnC,OAAO,CAAC,qBAAqB;CAehC"}
|
package/dist/code-generator.js
DELETED
|
@@ -1,131 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ApplicationCodeGenerator = void 0;
|
|
4
|
-
const errors_1 = require("./errors");
|
|
5
|
-
/**
|
|
6
|
-
* Generates TypeScript code for ApplicationBuilder
|
|
7
|
-
*/
|
|
8
|
-
class ApplicationCodeGenerator {
|
|
9
|
-
config;
|
|
10
|
-
constructor(config) {
|
|
11
|
-
this.config = config;
|
|
12
|
-
}
|
|
13
|
-
generateCode(handlers) {
|
|
14
|
-
this.validateNoDuplicates(handlers);
|
|
15
|
-
const imports = this.collectImports(handlers);
|
|
16
|
-
const registrations = this.generateRegistrations(handlers);
|
|
17
|
-
return this.assembleGeneratedCode(imports, registrations);
|
|
18
|
-
}
|
|
19
|
-
validateNoDuplicates(handlers) {
|
|
20
|
-
this.validateNoDuplicateCommandHandlers(handlers);
|
|
21
|
-
this.validateNoDuplicateEventHandlers(handlers);
|
|
22
|
-
this.validateNoDuplicateQueryHandlers(handlers);
|
|
23
|
-
}
|
|
24
|
-
validateNoDuplicateHandlers(handlers, typeFilter, keyExtractor, errorFactory) {
|
|
25
|
-
const filteredHandlers = handlers.filter(typeFilter);
|
|
26
|
-
const keyToHandlers = new Map();
|
|
27
|
-
for (const handler of filteredHandlers) {
|
|
28
|
-
const key = keyExtractor(handler);
|
|
29
|
-
const existing = keyToHandlers.get(key) ?? [];
|
|
30
|
-
existing.push(handler.handlerClassName);
|
|
31
|
-
keyToHandlers.set(key, existing);
|
|
32
|
-
}
|
|
33
|
-
for (const [key, handlerList] of keyToHandlers) {
|
|
34
|
-
if (handlerList.length > 1) {
|
|
35
|
-
throw errorFactory(key, handlerList);
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
validateNoDuplicateCommandHandlers(handlers) {
|
|
40
|
-
this.validateNoDuplicateHandlers(handlers, (h) => h.type === "command", (h) => h.commandClassName, (key, handlers) => new errors_1.DuplicateCommandHandlerError(key, handlers));
|
|
41
|
-
}
|
|
42
|
-
validateNoDuplicateEventHandlers(handlers) {
|
|
43
|
-
const eventHandlers = handlers.filter((h) => h.type === "event");
|
|
44
|
-
const namedEventHandlers = eventHandlers.filter((h) => h.eventHandlerOptions.name !== undefined);
|
|
45
|
-
this.validateNoDuplicateHandlers(namedEventHandlers, (h) => true, (h) => h.eventHandlerOptions.name, (key, handlers) => new errors_1.DuplicateEventHandlerError(key, handlers));
|
|
46
|
-
}
|
|
47
|
-
validateNoDuplicateQueryHandlers(handlers) {
|
|
48
|
-
this.validateNoDuplicateHandlers(handlers, (h) => h.type === "query", (h) => h.queryClassName, (key, handlers) => new errors_1.DuplicateQueryHandlerError(key, handlers));
|
|
49
|
-
}
|
|
50
|
-
createImportStatement(symbolName, importPath) {
|
|
51
|
-
return `import { ${symbolName} } from '${importPath}';`;
|
|
52
|
-
}
|
|
53
|
-
createCommandHandlerRegistration(commandClassName, handlerClassName) {
|
|
54
|
-
return ` .withCommandHandler(${commandClassName}, () => new ${handlerClassName}())`;
|
|
55
|
-
}
|
|
56
|
-
createEventHandlerRegistration(handlerClassName, eventName) {
|
|
57
|
-
const nameArg = eventName ? `, '${eventName}'` : "";
|
|
58
|
-
return ` .withEventHandler(() => new ${handlerClassName}()${nameArg})`;
|
|
59
|
-
}
|
|
60
|
-
createQueryHandlerRegistration(queryClassName, handlerClassName) {
|
|
61
|
-
return ` .withQueryHandler(${queryClassName}, () => new ${handlerClassName}())`;
|
|
62
|
-
}
|
|
63
|
-
isCommandHandler(handler) {
|
|
64
|
-
return handler.type === "command";
|
|
65
|
-
}
|
|
66
|
-
isEventHandler(handler) {
|
|
67
|
-
return handler.type === "event";
|
|
68
|
-
}
|
|
69
|
-
isQueryHandler(handler) {
|
|
70
|
-
return handler.type === "query";
|
|
71
|
-
}
|
|
72
|
-
collectImports(handlers) {
|
|
73
|
-
const imports = new Set();
|
|
74
|
-
imports.add(this.createImportStatement("ApplicationBuilder", this.config.applicationBuilderImportPath));
|
|
75
|
-
for (const handler of handlers) {
|
|
76
|
-
imports.add(this.createImportStatement(handler.handlerClassName, handler.handlerPath));
|
|
77
|
-
if (this.isCommandHandler(handler) && handler.commandPath) {
|
|
78
|
-
imports.add(this.createImportStatement(handler.commandClassName, handler.commandPath));
|
|
79
|
-
}
|
|
80
|
-
if (this.isQueryHandler(handler) && handler.queryPath) {
|
|
81
|
-
imports.add(this.createImportStatement(handler.queryClassName, handler.queryPath));
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
return imports;
|
|
85
|
-
}
|
|
86
|
-
generateRegistrations(handlers) {
|
|
87
|
-
const commandRegistrations = this.generateCommandRegistrations(handlers);
|
|
88
|
-
const queryRegistrations = this.generateQueryRegistrations(handlers);
|
|
89
|
-
const eventRegistrations = this.generateEventRegistrations(handlers);
|
|
90
|
-
return [...commandRegistrations, ...queryRegistrations, ...eventRegistrations];
|
|
91
|
-
}
|
|
92
|
-
generateCommandRegistrations(handlers) {
|
|
93
|
-
return handlers
|
|
94
|
-
.filter((h) => this.isCommandHandler(h))
|
|
95
|
-
.map((h) => this.createCommandHandlerRegistration(h.commandClassName, h.handlerClassName));
|
|
96
|
-
}
|
|
97
|
-
generateQueryRegistrations(handlers) {
|
|
98
|
-
return handlers
|
|
99
|
-
.filter((h) => this.isQueryHandler(h))
|
|
100
|
-
.map((h) => this.createQueryHandlerRegistration(h.queryClassName, h.handlerClassName));
|
|
101
|
-
}
|
|
102
|
-
generateEventRegistrations(handlers) {
|
|
103
|
-
return handlers
|
|
104
|
-
.filter((h) => this.isEventHandler(h))
|
|
105
|
-
.map((handler) => {
|
|
106
|
-
this.validateEventHandlerOptions(handler);
|
|
107
|
-
const eventName = handler.eventHandlerOptions.name;
|
|
108
|
-
return this.createEventHandlerRegistration(handler.handlerClassName, eventName);
|
|
109
|
-
});
|
|
110
|
-
}
|
|
111
|
-
validateEventHandlerOptions(handler) {
|
|
112
|
-
const options = handler.eventHandlerOptions;
|
|
113
|
-
const invalidKeys = Object.keys(options).filter((key) => key !== "name");
|
|
114
|
-
if (invalidKeys.length > 0) {
|
|
115
|
-
throw new Error(`EventHandler for ${handler.handlerClassName} has invalid options: ${invalidKeys.join(", ")}.\n` +
|
|
116
|
-
`Only 'name' option is supported. Use @EventHandler({ name: 'event-name' })`);
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
assembleGeneratedCode(imports, registrations) {
|
|
120
|
-
const registrationCode = registrations.length > 0 ? "\n" + registrations.join("\n") : "";
|
|
121
|
-
return `
|
|
122
|
-
${Array.from(imports).join("\n")}
|
|
123
|
-
|
|
124
|
-
export function createApplicationBuilder(): ApplicationBuilder {
|
|
125
|
-
return new ApplicationBuilder()${registrationCode};
|
|
126
|
-
}
|
|
127
|
-
`;
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
exports.ApplicationCodeGenerator = ApplicationCodeGenerator;
|
|
131
|
-
//# sourceMappingURL=code-generator.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"code-generator.js","sourceRoot":"","sources":["../src/code-generator.ts"],"names":[],"mappings":"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"}
|
package/dist/config-loader.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config-loader.d.ts","sourceRoot":"","sources":["../src/config-loader.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAwB,MAAM,UAAU,CAAC;AAEnE,wBAAsB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAM/E"}
|
package/dist/config-loader.js
DELETED
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.loadConfig = loadConfig;
|
|
37
|
-
const fs = __importStar(require("fs"));
|
|
38
|
-
const ts = __importStar(require("typescript"));
|
|
39
|
-
const config_1 = require("./config");
|
|
40
|
-
async function loadConfig(configPath) {
|
|
41
|
-
const configSource = fs.readFileSync(configPath, "utf-8");
|
|
42
|
-
const transpiledCode = transpileConfigFile(configSource);
|
|
43
|
-
const moduleExports = evaluateConfigModule(transpiledCode);
|
|
44
|
-
const rawConfig = extractConfigFromModule(moduleExports);
|
|
45
|
-
return config_1.BuildPluginConfig.fromRawConfig(rawConfig);
|
|
46
|
-
}
|
|
47
|
-
function transpileConfigFile(source) {
|
|
48
|
-
const result = ts.transpileModule(source, {
|
|
49
|
-
compilerOptions: {
|
|
50
|
-
module: ts.ModuleKind.CommonJS,
|
|
51
|
-
target: ts.ScriptTarget.ES2020,
|
|
52
|
-
},
|
|
53
|
-
});
|
|
54
|
-
return result.outputText;
|
|
55
|
-
}
|
|
56
|
-
function evaluateConfigModule(code) {
|
|
57
|
-
const tempModule = { exports: {} };
|
|
58
|
-
const fn = new Function("module", "exports", "require", code);
|
|
59
|
-
fn(tempModule, tempModule.exports, require);
|
|
60
|
-
return tempModule.exports;
|
|
61
|
-
}
|
|
62
|
-
function extractConfigFromModule(moduleExports) {
|
|
63
|
-
return moduleExports.default || moduleExports;
|
|
64
|
-
}
|
|
65
|
-
//# sourceMappingURL=config-loader.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config-loader.js","sourceRoot":"","sources":["../src/config-loader.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,gCAMC;AAVD,uCAAyB;AACzB,+CAAiC;AACjC,qCAAmE;AAE5D,KAAK,UAAU,UAAU,CAAC,UAAkB;IAC/C,MAAM,YAAY,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAC1D,MAAM,cAAc,GAAG,mBAAmB,CAAC,YAAY,CAAC,CAAC;IACzD,MAAM,aAAa,GAAG,oBAAoB,CAAC,cAAc,CAAC,CAAC;IAC3D,MAAM,SAAS,GAAG,uBAAuB,CAAC,aAAa,CAAC,CAAC;IACzD,OAAO,0BAAiB,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;AACtD,CAAC;AAED,SAAS,mBAAmB,CAAC,MAAc;IACvC,MAAM,MAAM,GAAG,EAAE,CAAC,eAAe,CAAC,MAAM,EAAE;QACtC,eAAe,EAAE;YACb,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ;YAC9B,MAAM,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM;SACjC;KACJ,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,UAAU,CAAC;AAC7B,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAY;IACtC,MAAM,UAAU,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACnC,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IAC9D,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC5C,OAAO,UAAU,CAAC,OAAO,CAAC;AAC9B,CAAC;AAED,SAAS,uBAAuB,CAAC,aAAkB;IAC/C,OAAO,aAAa,CAAC,OAAO,IAAI,aAAa,CAAC;AAClD,CAAC"}
|
package/dist/config.d.ts
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
export interface RawBuildPluginConfig {
|
|
2
|
-
handlers: string[];
|
|
3
|
-
outputFile?: string;
|
|
4
|
-
applicationBuilderImportPath: string;
|
|
5
|
-
}
|
|
6
|
-
export declare class BuildPluginConfig {
|
|
7
|
-
readonly handlers: string[];
|
|
8
|
-
readonly outputFile: string;
|
|
9
|
-
readonly applicationBuilderImportPath: string;
|
|
10
|
-
private constructor();
|
|
11
|
-
static fromRawConfig(raw: RawBuildPluginConfig): BuildPluginConfig;
|
|
12
|
-
}
|
|
13
|
-
//# sourceMappingURL=config.d.ts.map
|
package/dist/config.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,oBAAoB;IACjC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4BAA4B,EAAE,MAAM,CAAC;CACxC;AAED,qBAAa,iBAAiB;IAC1B,SAAgB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnC,SAAgB,UAAU,EAAE,MAAM,CAAC;IACnC,SAAgB,4BAA4B,EAAE,MAAM,CAAC;IAErD,OAAO;IAUP,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,oBAAoB,GAAG,iBAAiB;CAuBrE"}
|
package/dist/config.js
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.BuildPluginConfig = void 0;
|
|
4
|
-
class BuildPluginConfig {
|
|
5
|
-
handlers;
|
|
6
|
-
outputFile;
|
|
7
|
-
applicationBuilderImportPath;
|
|
8
|
-
constructor(config) {
|
|
9
|
-
this.handlers = config.handlers;
|
|
10
|
-
this.outputFile = config.outputFile;
|
|
11
|
-
this.applicationBuilderImportPath = config.applicationBuilderImportPath;
|
|
12
|
-
}
|
|
13
|
-
static fromRawConfig(raw) {
|
|
14
|
-
// Validate required fields
|
|
15
|
-
if (!raw.applicationBuilderImportPath) {
|
|
16
|
-
throw new Error("applicationBuilderImportPath is required in hexai.config.ts\n" +
|
|
17
|
-
"Example: { applicationBuilderImportPath: '@/application', ... }");
|
|
18
|
-
}
|
|
19
|
-
if (!raw.handlers || raw.handlers.length === 0) {
|
|
20
|
-
throw new Error("handlers array is required and must not be empty in hexai.config.ts");
|
|
21
|
-
}
|
|
22
|
-
// Provide defaults
|
|
23
|
-
return new BuildPluginConfig({
|
|
24
|
-
handlers: raw.handlers,
|
|
25
|
-
outputFile: raw.outputFile ?? "src/.generated/application-builder.ts",
|
|
26
|
-
applicationBuilderImportPath: raw.applicationBuilderImportPath,
|
|
27
|
-
});
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
exports.BuildPluginConfig = BuildPluginConfig;
|
|
31
|
-
//# sourceMappingURL=config.js.map
|
package/dist/config.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;AAMA,MAAa,iBAAiB;IACV,QAAQ,CAAW;IACnB,UAAU,CAAS;IACnB,4BAA4B,CAAS;IAErD,YAAoB,MAInB;QACG,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QACpC,IAAI,CAAC,4BAA4B,GAAG,MAAM,CAAC,4BAA4B,CAAC;IAC5E,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,GAAyB;QAC1C,2BAA2B;QAC3B,IAAI,CAAC,GAAG,CAAC,4BAA4B,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CACX,+DAA+D;gBAC3D,iEAAiE,CACxE,CAAC;QACN,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7C,MAAM,IAAI,KAAK,CACX,qEAAqE,CACxE,CAAC;QACN,CAAC;QAED,mBAAmB;QACnB,OAAO,IAAI,iBAAiB,CAAC;YACzB,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,UAAU,EACN,GAAG,CAAC,UAAU,IAAI,uCAAuC;YAC7D,4BAA4B,EAAE,GAAG,CAAC,4BAA4B;SACjE,CAAC,CAAC;IACP,CAAC;CACJ;AAtCD,8CAsCC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/decorators/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAElD,MAAM,WAAW,mBAAmB;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAeD;;;GAGG;AACH,eAAO,MAAM,oBAAoB,iBAXE,YAAY,MACtB,CAAC,SAAS;IAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,GAAG,CAAA;CAAE,EAAE,QAAQ,CAAC,MAUX,CAAC;AAEjE;;;GAGG;AACH,eAAO,MAAM,kBAAkB,iBAjBI,YAAY,MACtB,CAAC,SAAS;IAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,GAAG,CAAA;CAAE,EAAE,QAAQ,CAAC,MAgBb,CAAC;AAE/D;;;GAGG;AAEH,wBAAgB,kBAAkB,CAAC,OAAO,CAAC,EAAE,mBAAmB,IAC3C,CAAC,SAAS;IAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,GAAG,CAAA;CAAE,EAAE,QAAQ,CAAC,OAGtE"}
|
package/dist/errors.d.ts
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
export declare class DuplicateCommandHandlerError extends Error {
|
|
2
|
-
constructor(commandClassName: string, handlers: string[]);
|
|
3
|
-
}
|
|
4
|
-
export declare class DuplicateEventHandlerError extends Error {
|
|
5
|
-
constructor(eventName: string, handlers: string[]);
|
|
6
|
-
}
|
|
7
|
-
export declare class DuplicateQueryHandlerError extends Error {
|
|
8
|
-
constructor(queryClassName: string, handlers: string[]);
|
|
9
|
-
}
|
|
10
|
-
export declare class MessageClassNotFoundError extends Error {
|
|
11
|
-
constructor(messageClassName: string, filePath: string);
|
|
12
|
-
}
|
|
13
|
-
//# sourceMappingURL=errors.d.ts.map
|
package/dist/errors.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,4BAA6B,SAAQ,KAAK;gBACvC,gBAAgB,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE;CAM3D;AAED,qBAAa,0BAA2B,SAAQ,KAAK;gBACrC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE;CAMpD;AAED,qBAAa,0BAA2B,SAAQ,KAAK;gBACrC,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE;CAMzD;AAED,qBAAa,yBAA0B,SAAQ,KAAK;gBACpC,gBAAgB,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;CAMzD"}
|