/** * 保持 TypeScript 实现与 AsyncAPI 文档同步的工具 */ import { MessageType, ClientType, OperationType, Priority, MessageStatus } from './index'; /** * 生成 AsyncAPI 的枚举定义 */ export function generateAsyncApiEnums() { const enums = { MessageType: Object.values(MessageType), ClientType: Object.values(ClientType), OperationType: Object.values(OperationType), Priority: Object.values(Priority), MessageStatus: Object.values(MessageStatus) }; return ` # AsyncAPI Enum Definitions # Generated from TypeScript implementation components: schemas: MessageType: type: string enum: ${JSON.stringify(enums.MessageType)} ClientType: type: string enum: ${JSON.stringify(enums.ClientType)} OperationType: type: string enum: ${JSON.stringify(enums.OperationType)} Priority: type: string enum: ${JSON.stringify(enums.Priority)} MessageStatus: type: string enum: ${JSON.stringify(enums.MessageStatus)} `; } /** * 生成消息示例用于 AsyncAPI 文档 */ export function generateMessageExamples() { return { register_simple: { type: 'register', clientId: 'device001' }, register_full: { type: MessageType.REGISTER, clientId: 'backend-server', clientType: ClientType.BACKEND, clientInfo: { version: '1.0.0', platform: 'nodejs', capabilities: ['command', 'program'] }, timestamp: new Date().toISOString(), version: '2.0' }, command: { type: MessageType.COMMAND, requestRef: 'req-123', clientId: 'device001', command: { commandCode: 'READ_STATUS', deviceType: 'controller', operationType: OperationType.READ, parameters: { register: 'R001' } }, priority: Priority.HIGH, timeout: 10000, timestamp: new Date().toISOString(), version: '2.0' } }; }