@atomic-ehr/codegen 0.0.1-canary.20251006070905.fb6ed98 → 0.0.1-canary.20251006094042.7f0be72
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/index.js +45 -124
- package/dist/index.d.ts +2130 -62
- package/dist/index.js +5865 -84
- package/dist/index.js.map +1 -0
- package/package.json +3 -7
- package/dist/api/builder.d.ts +0 -154
- package/dist/api/builder.js +0 -341
- package/dist/api/generators/base/BaseGenerator.d.ts +0 -186
- package/dist/api/generators/base/BaseGenerator.js +0 -565
- package/dist/api/generators/base/FileManager.d.ts +0 -88
- package/dist/api/generators/base/FileManager.js +0 -202
- package/dist/api/generators/base/PythonTypeMapper.d.ts +0 -16
- package/dist/api/generators/base/PythonTypeMapper.js +0 -71
- package/dist/api/generators/base/TemplateEngine.d.ts +0 -126
- package/dist/api/generators/base/TemplateEngine.js +0 -133
- package/dist/api/generators/base/TypeMapper.d.ts +0 -129
- package/dist/api/generators/base/TypeMapper.js +0 -153
- package/dist/api/generators/base/TypeScriptTypeMapper.d.ts +0 -51
- package/dist/api/generators/base/TypeScriptTypeMapper.js +0 -232
- package/dist/api/generators/base/builders/DirectoryBuilder.d.ts +0 -99
- package/dist/api/generators/base/builders/DirectoryBuilder.js +0 -215
- package/dist/api/generators/base/builders/FileBuilder.d.ts +0 -160
- package/dist/api/generators/base/builders/FileBuilder.js +0 -406
- package/dist/api/generators/base/builders/IndexBuilder.d.ts +0 -126
- package/dist/api/generators/base/builders/IndexBuilder.js +0 -290
- package/dist/api/generators/base/enhanced-errors.d.ts +0 -84
- package/dist/api/generators/base/enhanced-errors.js +0 -259
- package/dist/api/generators/base/error-handler.d.ts +0 -89
- package/dist/api/generators/base/error-handler.js +0 -243
- package/dist/api/generators/base/errors.d.ts +0 -251
- package/dist/api/generators/base/errors.js +0 -692
- package/dist/api/generators/base/index.d.ts +0 -99
- package/dist/api/generators/base/index.js +0 -160
- package/dist/api/generators/base/types.d.ts +0 -433
- package/dist/api/generators/base/types.js +0 -12
- package/dist/api/generators/types.d.ts +0 -53
- package/dist/api/generators/types.js +0 -4
- package/dist/api/generators/typescript.d.ts +0 -190
- package/dist/api/generators/typescript.js +0 -819
- package/dist/api/index.d.ts +0 -51
- package/dist/api/index.js +0 -50
- package/dist/cli/commands/generate/typescript.d.ts +0 -10
- package/dist/cli/commands/generate/typescript.js +0 -52
- package/dist/cli/commands/generate.d.ts +0 -15
- package/dist/cli/commands/generate.js +0 -159
- package/dist/cli/commands/index.d.ts +0 -29
- package/dist/cli/commands/index.js +0 -100
- package/dist/cli/commands/typeschema/generate.d.ts +0 -19
- package/dist/cli/commands/typeschema/generate.js +0 -124
- package/dist/cli/commands/typeschema.d.ts +0 -10
- package/dist/cli/commands/typeschema.js +0 -47
- package/dist/cli/index.d.ts +0 -9
- package/dist/cli/utils/log.d.ts +0 -10
- package/dist/cli/utils/log.js +0 -23
- package/dist/cli/utils/prompts.d.ts +0 -56
- package/dist/cli/utils/prompts.js +0 -202
- package/dist/cli/utils/spinner.d.ts +0 -110
- package/dist/cli/utils/spinner.js +0 -266
- package/dist/config.d.ts +0 -217
- package/dist/config.js +0 -591
- package/dist/logger.d.ts +0 -157
- package/dist/logger.js +0 -281
- package/dist/typeschema/cache.d.ts +0 -80
- package/dist/typeschema/cache.js +0 -239
- package/dist/typeschema/core/binding.d.ts +0 -11
- package/dist/typeschema/core/binding.js +0 -143
- package/dist/typeschema/core/field-builder.d.ts +0 -12
- package/dist/typeschema/core/field-builder.js +0 -123
- package/dist/typeschema/core/identifier.d.ts +0 -13
- package/dist/typeschema/core/identifier.js +0 -94
- package/dist/typeschema/core/nested-types.d.ts +0 -9
- package/dist/typeschema/core/nested-types.js +0 -94
- package/dist/typeschema/core/transformer.d.ts +0 -11
- package/dist/typeschema/core/transformer.js +0 -235
- package/dist/typeschema/generator.d.ts +0 -43
- package/dist/typeschema/generator.js +0 -264
- package/dist/typeschema/index.d.ts +0 -15
- package/dist/typeschema/index.js +0 -15
- package/dist/typeschema/parser.d.ts +0 -79
- package/dist/typeschema/parser.js +0 -274
- package/dist/typeschema/profile/processor.d.ts +0 -14
- package/dist/typeschema/profile/processor.js +0 -262
- package/dist/typeschema/register.d.ts +0 -21
- package/dist/typeschema/register.js +0 -117
- package/dist/typeschema/types.d.ts +0 -240
- package/dist/typeschema/types.js +0 -19
- package/dist/utils/codegen-logger.d.ts +0 -102
- package/dist/utils/codegen-logger.js +0 -196
- package/dist/utils.d.ts +0 -22
- package/dist/utils.js +0 -42
|
@@ -1,186 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Abstract base generator class
|
|
3
|
-
*
|
|
4
|
-
* This is the foundation of the generator system. All language-specific generators
|
|
5
|
-
* extend this class to inherit common functionality while implementing their own
|
|
6
|
-
* specific logic for type mapping, content generation, and validation.
|
|
7
|
-
*/
|
|
8
|
-
import type { TypeSchema } from "@typeschema/types";
|
|
9
|
-
import type { CodegenLogger } from "../../../utils/codegen-logger";
|
|
10
|
-
import { ErrorHandler, GeneratorErrorBoundary } from "./error-handler";
|
|
11
|
-
import { FileManager } from "./FileManager";
|
|
12
|
-
import type { BaseGeneratorOptions, GeneratedFile, GeneratorCapabilities, ProgressCallback, TemplateContext, TemplateEngine, TypeMapper } from "./types";
|
|
13
|
-
/**
|
|
14
|
-
* Abstract base generator class with comprehensive functionality
|
|
15
|
-
*
|
|
16
|
-
* Provides common functionality for all generators including:
|
|
17
|
-
* - Schema validation and processing
|
|
18
|
-
* - File management with fluent API
|
|
19
|
-
* - Template processing
|
|
20
|
-
* - Error handling and recovery
|
|
21
|
-
* - Progress monitoring
|
|
22
|
-
* - Performance optimization
|
|
23
|
-
*/
|
|
24
|
-
export declare abstract class BaseGenerator<TOptions extends BaseGeneratorOptions = BaseGeneratorOptions, TResult extends GeneratedFile[] = GeneratedFile[]> {
|
|
25
|
-
/** Validated and merged options */
|
|
26
|
-
protected options: Required<TOptions>;
|
|
27
|
-
/** Logger instance for this generator */
|
|
28
|
-
protected readonly logger: CodegenLogger;
|
|
29
|
-
/** File manager for all file operations */
|
|
30
|
-
protected readonly fileManager: FileManager;
|
|
31
|
-
/** Template engine for content generation (optional) */
|
|
32
|
-
protected readonly templateEngine?: TemplateEngine;
|
|
33
|
-
/** Language-specific type mapper */
|
|
34
|
-
protected readonly typeMapper: TypeMapper;
|
|
35
|
-
/** Enhanced error handler for comprehensive error reporting */
|
|
36
|
-
protected readonly errorHandler: ErrorHandler;
|
|
37
|
-
/** Error boundary for catching and handling all generator errors */
|
|
38
|
-
protected readonly errorBoundary: GeneratorErrorBoundary;
|
|
39
|
-
/** Progress callback if provided */
|
|
40
|
-
private progressCallback?;
|
|
41
|
-
/** Generated files tracking */
|
|
42
|
-
private generatedFiles;
|
|
43
|
-
/** Generation start time for performance metrics */
|
|
44
|
-
private generationStartTime;
|
|
45
|
-
/** Cache for expensive operations */
|
|
46
|
-
private readonly cache;
|
|
47
|
-
constructor(options: TOptions);
|
|
48
|
-
/**
|
|
49
|
-
* Get the name of the target language (e.g., "TypeScript", "Python", "Rust")
|
|
50
|
-
*/
|
|
51
|
-
protected abstract getLanguageName(): string;
|
|
52
|
-
/**
|
|
53
|
-
* Get the file extension for the target language (e.g., ".ts", ".py", ".rs")
|
|
54
|
-
*/
|
|
55
|
-
protected abstract getFileExtension(): string;
|
|
56
|
-
/**
|
|
57
|
-
* Create a language-specific type mapper
|
|
58
|
-
*/
|
|
59
|
-
protected abstract createTypeMapper(): TypeMapper;
|
|
60
|
-
/**
|
|
61
|
-
* Generate content for a single schema
|
|
62
|
-
* @param schema - The TypeSchema to generate code for
|
|
63
|
-
* @param context - Additional context for generation
|
|
64
|
-
*/
|
|
65
|
-
protected abstract generateSchemaContent(schema: TypeSchema, context: TemplateContext): Promise<string>;
|
|
66
|
-
/**
|
|
67
|
-
* Validate generated content before writing
|
|
68
|
-
* @param content - The generated content
|
|
69
|
-
* @param context - The generation context
|
|
70
|
-
*/
|
|
71
|
-
protected abstract validateContent(content: string, context: TemplateContext): Promise<void>;
|
|
72
|
-
/**
|
|
73
|
-
* Filter and sort schemas with language-specific logic
|
|
74
|
-
* @param schemas - Input schemas
|
|
75
|
-
*/
|
|
76
|
-
protected abstract filterAndSortSchemas(schemas: TypeSchema[]): TypeSchema[];
|
|
77
|
-
/**
|
|
78
|
-
* Get generator capabilities - can be overridden for introspection
|
|
79
|
-
*/
|
|
80
|
-
getCapabilities(): GeneratorCapabilities;
|
|
81
|
-
/**
|
|
82
|
-
* Create file manager instance - can be overridden for custom file handling
|
|
83
|
-
*/
|
|
84
|
-
protected createFileManager(): FileManager;
|
|
85
|
-
/**
|
|
86
|
-
* Create template engine instance - can be overridden for custom templates
|
|
87
|
-
* Returns undefined if template engine is not needed
|
|
88
|
-
*/
|
|
89
|
-
protected createTemplateEngine(): TemplateEngine | undefined;
|
|
90
|
-
/**
|
|
91
|
-
* Generate code from TypeSchema documents
|
|
92
|
-
* This is the main method that orchestrates the entire generation process
|
|
93
|
-
* @param schemas - Array of TypeSchema documents
|
|
94
|
-
*/
|
|
95
|
-
generate(schemas: TypeSchema[]): Promise<TResult>;
|
|
96
|
-
/**
|
|
97
|
-
* Generate and return content without writing files (useful for testing)
|
|
98
|
-
* @param schemas - Array of TypeSchema documents
|
|
99
|
-
*/
|
|
100
|
-
build(schemas: TypeSchema[]): Promise<TResult>;
|
|
101
|
-
/**
|
|
102
|
-
* Create a file builder for fluent file generation
|
|
103
|
-
* @param filename - Name of the file to create
|
|
104
|
-
*/
|
|
105
|
-
file(filename: string): import("./builders/FileBuilder").FileBuilder;
|
|
106
|
-
/**
|
|
107
|
-
* Create a directory builder for batch operations
|
|
108
|
-
* @param path - Directory path relative to output directory
|
|
109
|
-
*/
|
|
110
|
-
directory(path: string): import("./builders/DirectoryBuilder").DirectoryBuilder;
|
|
111
|
-
/**
|
|
112
|
-
* Create an index file builder
|
|
113
|
-
* @param directory - Directory to create index for
|
|
114
|
-
*/
|
|
115
|
-
index(directory?: string): import("./builders/IndexBuilder").IndexBuilder;
|
|
116
|
-
/**
|
|
117
|
-
* Set progress callback for monitoring generation
|
|
118
|
-
* @param callback - Progress callback function
|
|
119
|
-
*/
|
|
120
|
-
onProgress(callback: ProgressCallback): this;
|
|
121
|
-
/**
|
|
122
|
-
* Validate generator configuration
|
|
123
|
-
*/
|
|
124
|
-
private validateConfiguration;
|
|
125
|
-
/**
|
|
126
|
-
* Merge options with defaults
|
|
127
|
-
*/
|
|
128
|
-
private mergeWithDefaults;
|
|
129
|
-
/**
|
|
130
|
-
* Validate schemas before processing
|
|
131
|
-
*/
|
|
132
|
-
private validateSchemas;
|
|
133
|
-
/**
|
|
134
|
-
* Validate individual schema
|
|
135
|
-
*/
|
|
136
|
-
protected validateSchema(schema: TypeSchema): Promise<void>;
|
|
137
|
-
/**
|
|
138
|
-
* Detect circular references in schema dependencies
|
|
139
|
-
*/
|
|
140
|
-
private detectCircularReferences;
|
|
141
|
-
/**
|
|
142
|
-
* Generate files from processed schemas
|
|
143
|
-
*/
|
|
144
|
-
private generateFiles;
|
|
145
|
-
/**
|
|
146
|
-
* Generate a single file from a schema
|
|
147
|
-
*/
|
|
148
|
-
private generateFileForSchema;
|
|
149
|
-
/**
|
|
150
|
-
* Ensure filename has correct extension
|
|
151
|
-
*/
|
|
152
|
-
private ensureFileExtension;
|
|
153
|
-
/**
|
|
154
|
-
* Extract exported symbols from generated content
|
|
155
|
-
* Can be overridden by language-specific implementations
|
|
156
|
-
*/
|
|
157
|
-
protected extractExports(content: string): string[];
|
|
158
|
-
/**
|
|
159
|
-
* Report progress to callback if provided
|
|
160
|
-
*/
|
|
161
|
-
protected reportProgress(phase: "validation" | "generation" | "writing" | "complete", current: number, total: number, message?: string, schema?: TypeSchema): void;
|
|
162
|
-
/**
|
|
163
|
-
* Run post-generation hooks
|
|
164
|
-
* Can be overridden to add custom post-processing
|
|
165
|
-
*/
|
|
166
|
-
protected runPostGenerationHooks(): Promise<void>;
|
|
167
|
-
/**
|
|
168
|
-
* Get cached value or compute and cache it
|
|
169
|
-
*/
|
|
170
|
-
protected getCachedOrCompute<T>(key: string, computeFn: () => T | Promise<T>): T | Promise<T>;
|
|
171
|
-
/**
|
|
172
|
-
* Clear internal cache
|
|
173
|
-
*/
|
|
174
|
-
protected clearCache(): void;
|
|
175
|
-
/**
|
|
176
|
-
* Get generation statistics
|
|
177
|
-
*/
|
|
178
|
-
getGenerationStats(): {
|
|
179
|
-
filesGenerated: number;
|
|
180
|
-
totalSize: number;
|
|
181
|
-
averageFileSize: number;
|
|
182
|
-
generationTime: number;
|
|
183
|
-
averageTimePerFile: number;
|
|
184
|
-
cacheHitRate: number;
|
|
185
|
-
};
|
|
186
|
-
}
|