UNPKG

@macroforge/mcp-server

Version:

MCP server for Macroforge documentation and code analysis

63 lines (43 loc) • 1.54 kB
# Debug The `Debug` macro generates a human-readable `toString()` method for TypeScript classes, interfaces, enums, and type aliases. ## Generated Output **Classes**: Generates a standalone function `classNameToString(value)` and a static wrapper method `static toString(value)` returning a string like `"ClassName { field1: value1, field2: value2 }"`. **Enums**: Generates a standalone function `enumNameToString(value)` that performs reverse lookup on numeric enums. **Interfaces**: Generates a standalone function `ifaceNameToString(value)`. **Type Aliases**: Generates a standalone function using JSON.stringify for complex types, or field enumeration for object types. Names use **camelCase** conversion (e.g., `User` -> `userToString`). ## Field-Level Options The `@debug` decorator supports: - `skip` - Exclude the field from debug output - `rename = "label"` - Use a custom label instead of the field name ## Example ```typescript before /** @derive(Debug) */ class User { /** @debug({ rename: "id" }) */ userId: number; /** @debug({ skip: true }) */ password: string; email: string; } ``` ```typescript after class User { userId: number; password: string; email: string; static toString(value: User): string { return userToString(value); } } export function userToString(value: User): string { const parts: string[] = []; parts.push('id: ' + value.userId); parts.push('email: ' + value.email); return 'User { ' + parts.join(', ') + ' }'; } ```