@rexeus/typeweaver-gen 0.5.0 → 0.6.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/README.md +1 -1
- package/dist/LICENSE +1 -1
- package/dist/NOTICE +1 -1
- package/dist/index.cjs +250 -204
- package/dist/index.d.cts +193 -185
- package/dist/index.d.cts.map +1 -0
- package/dist/index.d.mts +284 -0
- package/dist/index.d.mts.map +1 -0
- package/dist/index.mjs +239 -0
- package/dist/index.mjs.map +1 -0
- package/package.json +10 -9
- package/dist/index.d.ts +0 -276
- package/dist/index.js +0 -215
- package/dist/metafile-cjs.json +0 -1
- package/dist/metafile-esm.json +0 -1
package/dist/index.d.cts
CHANGED
|
@@ -1,56 +1,58 @@
|
|
|
1
|
-
import { IHttpOperationDefinition, IHttpResponseDefinition } from
|
|
1
|
+
import { IHttpOperationDefinition, IHttpResponseDefinition } from "@rexeus/typeweaver-core";
|
|
2
2
|
|
|
3
|
+
//#region src/Resource.d.ts
|
|
3
4
|
type GetResourcesResult = {
|
|
4
|
-
|
|
5
|
-
|
|
5
|
+
entityResources: EntityResources;
|
|
6
|
+
sharedResponseResources: SharedResponseResource[];
|
|
6
7
|
};
|
|
7
8
|
type ExtendedResponseDefinition = IHttpResponseDefinition & {
|
|
8
|
-
|
|
9
|
-
|
|
9
|
+
statusCodeName: string;
|
|
10
|
+
isReference: boolean;
|
|
10
11
|
};
|
|
11
12
|
type EntityName = string;
|
|
12
13
|
type OperationResource = {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
14
|
+
sourceDir: string;
|
|
15
|
+
sourceFile: string;
|
|
16
|
+
sourceFileName: string;
|
|
17
|
+
definition: Omit<IHttpOperationDefinition, "responses"> & {
|
|
18
|
+
responses: ExtendedResponseDefinition[];
|
|
19
|
+
};
|
|
20
|
+
outputDir: string;
|
|
21
|
+
entityName: EntityName;
|
|
22
|
+
outputRequestFile: string;
|
|
23
|
+
outputRequestFileName: string;
|
|
24
|
+
outputResponseFile: string;
|
|
25
|
+
outputResponseFileName: string;
|
|
26
|
+
outputRequestValidationFile: string;
|
|
27
|
+
outputRequestValidationFileName: string;
|
|
28
|
+
outputResponseValidationFile: string;
|
|
29
|
+
outputResponseValidationFileName: string;
|
|
30
|
+
outputClientFile: string;
|
|
31
|
+
outputClientFileName: string;
|
|
31
32
|
};
|
|
32
33
|
type EntityResources = Record<EntityName, {
|
|
33
|
-
|
|
34
|
-
|
|
34
|
+
operations: OperationResource[];
|
|
35
|
+
responses: EntityResponseResource[];
|
|
35
36
|
}>;
|
|
36
37
|
type SharedResponseResource = IHttpResponseDefinition & {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
38
|
+
sourceDir: string;
|
|
39
|
+
sourceFile: string;
|
|
40
|
+
sourceFileName: string;
|
|
41
|
+
outputFile: string;
|
|
42
|
+
outputFileName: string;
|
|
43
|
+
outputDir: string;
|
|
43
44
|
};
|
|
44
45
|
type EntityResponseResource = IHttpResponseDefinition & {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
46
|
+
sourceDir: string;
|
|
47
|
+
sourceFile: string;
|
|
48
|
+
sourceFileName: string;
|
|
49
|
+
outputFile: string;
|
|
50
|
+
outputFileName: string;
|
|
51
|
+
outputDir: string;
|
|
52
|
+
entityName: EntityName;
|
|
52
53
|
};
|
|
53
|
-
|
|
54
|
+
//#endregion
|
|
55
|
+
//#region src/plugins/types.d.ts
|
|
54
56
|
/**
|
|
55
57
|
* Configuration for a typeweaver plugin
|
|
56
58
|
*/
|
|
@@ -59,52 +61,52 @@ type PluginConfig = Record<string, unknown>;
|
|
|
59
61
|
* Context provided to plugins during initialization and finalization
|
|
60
62
|
*/
|
|
61
63
|
type PluginContext = {
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
64
|
+
outputDir: string;
|
|
65
|
+
inputDir: string;
|
|
66
|
+
config: PluginConfig;
|
|
65
67
|
};
|
|
66
68
|
/**
|
|
67
69
|
* Context provided to plugins during generation
|
|
68
70
|
*/
|
|
69
71
|
type GeneratorContext = PluginContext & {
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
72
|
+
resources: GetResourcesResult;
|
|
73
|
+
templateDir: string;
|
|
74
|
+
coreDir: string;
|
|
75
|
+
writeFile: (relativePath: string, content: string) => void;
|
|
76
|
+
renderTemplate: (templatePath: string, data: unknown) => string;
|
|
77
|
+
addGeneratedFile: (relativePath: string) => void;
|
|
78
|
+
getGeneratedFiles: () => string[];
|
|
77
79
|
};
|
|
78
80
|
/**
|
|
79
81
|
* Plugin metadata
|
|
80
82
|
*/
|
|
81
83
|
type PluginMetadata = {
|
|
82
|
-
|
|
84
|
+
name: string;
|
|
83
85
|
};
|
|
84
86
|
/**
|
|
85
87
|
* typeweaver plugin interface
|
|
86
88
|
*/
|
|
87
89
|
type TypeweaverPlugin = PluginMetadata & {
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
90
|
+
/**
|
|
91
|
+
* Initialize the plugin
|
|
92
|
+
* Called before any generation happens
|
|
93
|
+
*/
|
|
94
|
+
initialize?(context: PluginContext): Promise<void> | void;
|
|
95
|
+
/**
|
|
96
|
+
* Collect and transform resources
|
|
97
|
+
* Allows plugins to modify the resource collection
|
|
98
|
+
*/
|
|
99
|
+
collectResources?(resources: GetResourcesResult): Promise<GetResourcesResult> | GetResourcesResult;
|
|
100
|
+
/**
|
|
101
|
+
* Main generation logic
|
|
102
|
+
* Called with all resources and utilities
|
|
103
|
+
*/
|
|
104
|
+
generate?(context: GeneratorContext): Promise<void> | void;
|
|
105
|
+
/**
|
|
106
|
+
* Finalize the plugin
|
|
107
|
+
* Called after all generation is complete
|
|
108
|
+
*/
|
|
109
|
+
finalize?(context: PluginContext): Promise<void> | void;
|
|
108
110
|
};
|
|
109
111
|
/**
|
|
110
112
|
* Plugin constructor type
|
|
@@ -114,163 +116,169 @@ type PluginConstructor = new (config?: PluginConfig) => TypeweaverPlugin;
|
|
|
114
116
|
* Plugin module export
|
|
115
117
|
*/
|
|
116
118
|
type PluginModule = {
|
|
117
|
-
|
|
119
|
+
default: PluginConstructor;
|
|
118
120
|
};
|
|
119
121
|
/**
|
|
120
122
|
* Plugin registration entry
|
|
121
123
|
*/
|
|
122
124
|
type PluginRegistration = {
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
125
|
+
name: string;
|
|
126
|
+
plugin: TypeweaverPlugin;
|
|
127
|
+
config?: PluginConfig;
|
|
126
128
|
};
|
|
127
129
|
/**
|
|
128
130
|
* typeweaver configuration
|
|
129
131
|
*/
|
|
130
132
|
type TypeweaverConfig = {
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
133
|
+
input: string;
|
|
134
|
+
output: string;
|
|
135
|
+
shared?: string;
|
|
136
|
+
plugins?: (string | [string, PluginConfig])[];
|
|
137
|
+
format?: boolean;
|
|
138
|
+
clean?: boolean;
|
|
137
139
|
};
|
|
138
140
|
/**
|
|
139
141
|
* Plugin loading error
|
|
140
142
|
*/
|
|
141
143
|
declare class PluginLoadError extends Error {
|
|
142
|
-
|
|
143
|
-
|
|
144
|
+
pluginName: string;
|
|
145
|
+
constructor(pluginName: string, message: string);
|
|
144
146
|
}
|
|
145
147
|
/**
|
|
146
148
|
* Plugin dependency error
|
|
147
149
|
*/
|
|
148
150
|
declare class PluginDependencyError extends Error {
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
151
|
+
pluginName: string;
|
|
152
|
+
missingDependency: string;
|
|
153
|
+
constructor(pluginName: string, missingDependency: string);
|
|
152
154
|
}
|
|
153
|
-
|
|
155
|
+
//#endregion
|
|
156
|
+
//#region src/plugins/BasePlugin.d.ts
|
|
154
157
|
/**
|
|
155
158
|
* Base class for typeweaver plugins
|
|
156
159
|
* Provides default implementations and common utilities
|
|
157
160
|
*/
|
|
158
161
|
declare abstract class BasePlugin implements TypeweaverPlugin {
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
162
|
+
abstract name: string;
|
|
163
|
+
description?: string;
|
|
164
|
+
author?: string;
|
|
165
|
+
depends?: string[];
|
|
166
|
+
protected config: PluginConfig;
|
|
167
|
+
constructor(config?: PluginConfig);
|
|
168
|
+
/**
|
|
169
|
+
* Default implementation - override in subclasses if needed
|
|
170
|
+
*/
|
|
171
|
+
initialize(_context: PluginContext): Promise<void>;
|
|
172
|
+
/**
|
|
173
|
+
* Default implementation - override in subclasses if needed
|
|
174
|
+
*/
|
|
175
|
+
collectResources(resources: GetResourcesResult): GetResourcesResult;
|
|
176
|
+
/**
|
|
177
|
+
* Main generation logic - must be implemented by subclasses
|
|
178
|
+
*/
|
|
179
|
+
abstract generate(context: GeneratorContext): Promise<void> | void;
|
|
180
|
+
/**
|
|
181
|
+
* Default implementation - override in subclasses if needed
|
|
182
|
+
*/
|
|
183
|
+
finalize(_context: PluginContext): Promise<void>;
|
|
184
|
+
/**
|
|
185
|
+
* Copy lib files from plugin package to generated lib folder
|
|
186
|
+
*/
|
|
187
|
+
protected copyLibFiles(context: GeneratorContext, libSourceDir: string, libNamespace: string): void;
|
|
185
188
|
}
|
|
186
|
-
|
|
189
|
+
//#endregion
|
|
190
|
+
//#region src/plugins/BaseTemplatePlugin.d.ts
|
|
187
191
|
/**
|
|
188
192
|
* Base class for template-based generator plugins
|
|
189
193
|
* Provides utilities for working with EJS templates
|
|
190
194
|
*/
|
|
191
195
|
declare abstract class BaseTemplatePlugin extends BasePlugin {
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
196
|
+
/**
|
|
197
|
+
* Render an EJS template with the given data
|
|
198
|
+
*/
|
|
199
|
+
protected renderTemplate(templatePath: string, data: unknown): string;
|
|
200
|
+
/**
|
|
201
|
+
* Write a file relative to the output directory
|
|
202
|
+
*/
|
|
203
|
+
protected writeFile(context: GeneratorContext, relativePath: string, content: string): void;
|
|
204
|
+
/**
|
|
205
|
+
* Ensure a directory exists
|
|
206
|
+
*/
|
|
207
|
+
protected ensureDir(context: GeneratorContext, relativePath: string): void;
|
|
208
|
+
/**
|
|
209
|
+
* Get the template path for this plugin
|
|
210
|
+
*/
|
|
211
|
+
protected getTemplatePath(context: GeneratorContext, templateName: string): string;
|
|
208
212
|
}
|
|
209
|
-
|
|
213
|
+
//#endregion
|
|
214
|
+
//#region src/plugins/PluginRegistry.d.ts
|
|
210
215
|
/**
|
|
211
216
|
* Registry for managing typeweaver plugins
|
|
212
217
|
*/
|
|
213
218
|
declare class PluginRegistry {
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
219
|
+
private plugins;
|
|
220
|
+
constructor();
|
|
221
|
+
/**
|
|
222
|
+
* Register a plugin
|
|
223
|
+
*/
|
|
224
|
+
register(plugin: TypeweaverPlugin, config?: unknown): void;
|
|
225
|
+
/**
|
|
226
|
+
* Get a registered plugin
|
|
227
|
+
*/
|
|
228
|
+
get(name: string): PluginRegistration | undefined;
|
|
229
|
+
/**
|
|
230
|
+
* Get all registered plugins
|
|
231
|
+
*/
|
|
232
|
+
getAll(): PluginRegistration[];
|
|
233
|
+
/**
|
|
234
|
+
* Check if a plugin is registered
|
|
235
|
+
*/
|
|
236
|
+
has(name: string): boolean;
|
|
237
|
+
/**
|
|
238
|
+
* Clear all registered plugins (except required ones)
|
|
239
|
+
*/
|
|
240
|
+
clear(): void;
|
|
236
241
|
}
|
|
237
|
-
|
|
242
|
+
//#endregion
|
|
243
|
+
//#region src/plugins/PluginContext.d.ts
|
|
238
244
|
/**
|
|
239
245
|
* Builder for plugin contexts
|
|
240
246
|
*/
|
|
241
247
|
declare class PluginContextBuilder {
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
248
|
+
private generatedFiles;
|
|
249
|
+
/**
|
|
250
|
+
* Create a basic plugin context
|
|
251
|
+
*/
|
|
252
|
+
createPluginContext(params: {
|
|
253
|
+
outputDir: string;
|
|
254
|
+
inputDir: string;
|
|
255
|
+
config: PluginConfig;
|
|
256
|
+
}): PluginContext;
|
|
257
|
+
/**
|
|
258
|
+
* Create a generator context with utilities
|
|
259
|
+
*/
|
|
260
|
+
createGeneratorContext(params: {
|
|
261
|
+
outputDir: string;
|
|
262
|
+
inputDir: string;
|
|
263
|
+
config: PluginConfig;
|
|
264
|
+
resources: GetResourcesResult;
|
|
265
|
+
templateDir: string;
|
|
266
|
+
coreDir: string;
|
|
267
|
+
}): GeneratorContext;
|
|
268
|
+
/**
|
|
269
|
+
* Get all generated files
|
|
270
|
+
*/
|
|
271
|
+
getGeneratedFiles(): string[];
|
|
272
|
+
/**
|
|
273
|
+
* Clear generated files tracking
|
|
274
|
+
*/
|
|
275
|
+
clearGeneratedFiles(): void;
|
|
270
276
|
}
|
|
271
|
-
|
|
277
|
+
//#endregion
|
|
278
|
+
//#region src/helpers/Path.d.ts
|
|
272
279
|
declare class Path {
|
|
273
|
-
|
|
280
|
+
static relative(from: string, to: string): string;
|
|
274
281
|
}
|
|
275
|
-
|
|
276
|
-
export { BasePlugin, BaseTemplatePlugin,
|
|
282
|
+
//#endregion
|
|
283
|
+
export { BasePlugin, BaseTemplatePlugin, EntityName, EntityResources, EntityResponseResource, ExtendedResponseDefinition, GeneratorContext, GetResourcesResult, OperationResource, Path, PluginConfig, PluginConstructor, PluginContext, PluginContextBuilder, PluginDependencyError, PluginLoadError, PluginMetadata, PluginModule, PluginRegistration, PluginRegistry, SharedResponseResource, TypeweaverConfig, TypeweaverPlugin };
|
|
284
|
+
//# sourceMappingURL=index.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.cts","names":[],"sources":["../src/Resource.ts","../src/plugins/types.ts","../src/plugins/BasePlugin.ts","../src/plugins/BaseTemplatePlugin.ts","../src/plugins/PluginRegistry.ts","../src/plugins/PluginContext.ts","../src/helpers/Path.ts"],"mappings":"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"}
|