openapi-class-transformer 1.0.8 → 1.0.10

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 CHANGED
@@ -165,6 +165,100 @@ const user = plainToInstance(User, plainData);
165
165
  // ✅ user.profile is properly typed Profile instance
166
166
  ```
167
167
 
168
+ ### Discriminated Unions (Polymorphic Types)
169
+
170
+ When your OpenAPI spec uses `oneOf` or `anyOf` with discriminators, the generator automatically creates discriminator decorators for proper runtime polymorphism:
171
+
172
+ #### OpenAPI Spec Example
173
+ ```yaml
174
+ components:
175
+ schemas:
176
+ HelmComponent:
177
+ type: object
178
+ required: [type, chartName]
179
+ properties:
180
+ type:
181
+ type: string
182
+ enum: [helm]
183
+ chartName:
184
+ type: string
185
+
186
+ KustomizeComponent:
187
+ type: object
188
+ required: [type, path]
189
+ properties:
190
+ type:
191
+ type: string
192
+ enum: [kustomize]
193
+ path:
194
+ type: string
195
+
196
+ Capability:
197
+ type: object
198
+ properties:
199
+ components:
200
+ type: array
201
+ items:
202
+ oneOf:
203
+ - $ref: '#/components/schemas/HelmComponent'
204
+ - $ref: '#/components/schemas/KustomizeComponent'
205
+ discriminator:
206
+ propertyName: type
207
+ mapping:
208
+ helm: '#/components/schemas/HelmComponent'
209
+ kustomize: '#/components/schemas/KustomizeComponent'
210
+ ```
211
+
212
+ #### Generated Code
213
+ ```typescript
214
+ import { Type, Expose } from 'class-transformer';
215
+ import { HelmComponent } from './helm-component.js';
216
+ import { KustomizeComponent } from './kustomize-component.js';
217
+
218
+ export class Capability {
219
+ @Expose()
220
+ @Type(() => Object, {
221
+ discriminator: {
222
+ property: 'type',
223
+ subTypes: [
224
+ { value: HelmComponent, name: 'helm' },
225
+ { value: KustomizeComponent, name: 'kustomize' }
226
+ ]
227
+ },
228
+ keepDiscriminatorProperty: true
229
+ })
230
+ 'components'?: Array<HelmComponent | KustomizeComponent>;
231
+ }
232
+ ```
233
+
234
+ #### Runtime Usage
235
+ ```typescript
236
+ import 'reflect-metadata';
237
+ import { plainToInstance } from 'class-transformer';
238
+ import { Capability } from './generated/models/capability';
239
+ import { HelmComponent } from './generated/models/helm-component';
240
+ import { KustomizeComponent } from './generated/models/kustomize-component';
241
+
242
+ const data = {
243
+ components: [
244
+ { type: 'helm', chartName: 'nginx', version: '1.0.0' },
245
+ { type: 'kustomize', path: './manifests' }
246
+ ]
247
+ };
248
+
249
+ const capability = plainToInstance(Capability, data);
250
+
251
+ // ✅ Automatic polymorphic deserialization based on 'type' discriminator
252
+ console.log(capability.components[0] instanceof HelmComponent); // true
253
+ console.log(capability.components[1] instanceof KustomizeComponent); // true
254
+
255
+ // ✅ Type-safe property access
256
+ console.log(capability.components[0].chartName); // 'nginx'
257
+ console.log(capability.components[1].path); // './manifests'
258
+ ```
259
+
260
+ The discriminator decorator ensures that `class-transformer` automatically instantiates the correct concrete class based on the discriminator property value!
261
+
168
262
  ### TypeScript Configuration
169
263
 
170
264
  Ensure your `tsconfig.json` has the following settings to use the generated classes:
@@ -17,6 +17,11 @@ export interface GeneratorOptions {
17
17
  * @default false
18
18
  */
19
19
  modelsOnly?: boolean;
20
+ /**
21
+ * Include NestJS Swagger @ApiProperty decorators
22
+ * @default false
23
+ */
24
+ nestJsSwagger?: boolean;
20
25
  /**
21
26
  * Additional OpenAPI Generator properties
22
27
  */
@@ -1 +1 @@
1
- {"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;OAEG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC/C;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,OAAO,CAA6B;gBAEhC,OAAO,EAAE,gBAAgB;IAWrC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAgB7B;;OAEG;IACH,OAAO,CAAC,eAAe;IAUvB;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CA2FhC"}
1
+ {"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;OAEG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC/C;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,OAAO,CAA6B;gBAEhC,OAAO,EAAE,gBAAgB;IAYrC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA8B7B;;OAEG;IACH,OAAO,CAAC,eAAe;IAUvB;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CA6FhC"}
package/dist/generator.js CHANGED
@@ -43,6 +43,7 @@ class Generator {
43
43
  this.options = {
44
44
  templateDir: this.getDefaultTemplateDir(),
45
45
  modelsOnly: false,
46
+ nestJsSwagger: false,
46
47
  additionalProperties: {},
47
48
  ...options
48
49
  };
@@ -52,15 +53,29 @@ class Generator {
52
53
  * Get the default template directory (bundled with the package)
53
54
  */
54
55
  getDefaultTemplateDir() {
55
- // In development, templates are in the root
56
- // After build, they should be adjacent to dist
57
- const devPath = path.join(__dirname, '../templates');
58
- const prodPath = path.join(__dirname, '../../templates');
59
- if (fs.existsSync(devPath)) {
60
- return devPath;
56
+ // Try various paths to support different installation scenarios:
57
+ // 1. Development (src/../templates)
58
+ // 2. Production (dist/../templates)
59
+ // 3. pnpm workspace (dist/../../templates)
60
+ // 4. Hoisted node_modules (../../../templates from dist)
61
+ // 5. Global install or npx
62
+ const paths = [
63
+ path.join(__dirname, '../templates'), // Dev
64
+ path.join(__dirname, '../../templates'), // Prod
65
+ path.join(__dirname, '../../../templates'), // pnpm workspace
66
+ path.join(process.cwd(), 'node_modules/openapi-class-transformer/templates') // From cwd
67
+ ];
68
+ // Try require.resolve (may fail in test environments)
69
+ try {
70
+ paths.push(path.join(require.resolve('openapi-class-transformer'), '../../templates'));
71
+ }
72
+ catch {
73
+ // Ignore if require.resolve fails
61
74
  }
62
- if (fs.existsSync(prodPath)) {
63
- return prodPath;
75
+ for (const templatePath of paths) {
76
+ if (fs.existsSync(templatePath)) {
77
+ return templatePath;
78
+ }
64
79
  }
65
80
  throw new Error('Could not find templates directory');
66
81
  }
@@ -91,6 +106,7 @@ class Generator {
91
106
  supportsES6: 'true',
92
107
  useSingleRequestParameter: 'true',
93
108
  withNodeImports: 'true',
109
+ nestJsSwagger: this.options.nestJsSwagger ? 'true' : 'false',
94
110
  ...this.options.additionalProperties
95
111
  };
96
112
  const propsString = Object.entries(additionalProps)
@@ -145,7 +161,7 @@ class Generator {
145
161
  }
146
162
  // Post-process generated files
147
163
  console.log('Post-processing generated files...');
148
- const postProcessor = new post_processor_1.PostProcessor(this.options.inputSpec, this.options.outputDir);
164
+ const postProcessor = new post_processor_1.PostProcessor(this.options.inputSpec, this.options.outputDir, this.options.nestJsSwagger);
149
165
  await postProcessor.process();
150
166
  console.log('Generation complete!');
151
167
  }
@@ -1 +1 @@
1
- {"version":3,"file":"generator.js","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,10 @@
1
1
  export declare class PostProcessor {
2
2
  private openApiSpec;
3
3
  private outputDir;
4
+ private nestJsSwagger;
4
5
  private unionTypeMap;
5
- constructor(specPath: string, outputDir: string);
6
+ private discriminatedUnionMap;
7
+ constructor(specPath: string, outputDir: string, nestJsSwagger?: boolean);
6
8
  /**
7
9
  * Load OpenAPI specification
8
10
  */
@@ -11,6 +13,14 @@ export declare class PostProcessor {
11
13
  * Build a map of properties that should be union types instead of generated classes
12
14
  */
13
15
  private buildUnionTypeMap;
16
+ /**
17
+ * Process a property that might be a union type (oneOf/anyOf)
18
+ */
19
+ private processUnionType;
20
+ /**
21
+ * Extract class names from $ref union types
22
+ */
23
+ private getUnionTypesFromRefs;
14
24
  /**
15
25
  * Convert anyOf array to TypeScript union type if all types are simple
16
26
  */
@@ -35,6 +45,7 @@ export declare class PostProcessor {
35
45
  /**
36
46
  * Fix the main index.ts file to export from models/index.js instead of models.js
37
47
  * Also fix API files that import from models
48
+ * Also re-export Configuration from api.ts for convenience
38
49
  */
39
50
  private fixMainIndex;
40
51
  /**
@@ -49,6 +60,14 @@ export declare class PostProcessor {
49
60
  * Replace generated class types with union types where appropriate
50
61
  */
51
62
  private replaceUnionTypes;
63
+ /**
64
+ * Build discriminator decorator configuration
65
+ */
66
+ private buildDiscriminatorDecorator;
67
+ /**
68
+ * Fix discriminated unions by adding discriminator decorators and replacing union type classes
69
+ */
70
+ private fixDiscriminatedUnions;
52
71
  /**
53
72
  * Add vendor extensions to JSDoc comments
54
73
  */
@@ -61,6 +80,10 @@ export declare class PostProcessor {
61
80
  * Get vendor extensions for a specific property
62
81
  */
63
82
  private getVendorExtensionsForProperty;
83
+ /**
84
+ * Remove NestJS Swagger decorators and imports
85
+ */
86
+ private removeNestJsDecorators;
64
87
  /**
65
88
  * Add .js extensions to relative imports
66
89
  */
@@ -1 +1 @@
1
- {"version":3,"file":"post-processor.d.ts","sourceRoot":"","sources":["../src/post-processor.ts"],"names":[],"mappings":"AAGA,qBAAa,aAAa;IACxB,OAAO,CAAC,WAAW,CAAM;IACzB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,YAAY,CAAgF;gBAExF,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAO/C;;OAEG;IACH,OAAO,CAAC,QAAQ;IAShB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAoCzB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAuB7B;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAWlC;;OAEG;IACH,OAAO,CAAC,iCAAiC;IAOzC;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAkC9B;;;OAGG;IACH,OAAO,CAAC,0BAA0B;IAmBlC;;;OAGG;IACH,OAAO,CAAC,YAAY;IAiCpB;;OAEG;IACH,OAAO,CAAC,QAAQ;IAqBhB;;OAEG;IACH,OAAO,CAAC,cAAc;IAqBtB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAiDzB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA6B3B;;OAEG;IACH,OAAO,CAAC,kCAAkC;IA8C1C;;OAEG;IACH,OAAO,CAAC,8BAA8B;IA+CtC;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA2B3B;;OAEG;IACH,OAAO,CAAC,OAAO;IA4Cf;;OAEG;IACH,OAAO,CAAC,WAAW;CAMpB"}
1
+ {"version":3,"file":"post-processor.d.ts","sourceRoot":"","sources":["../src/post-processor.ts"],"names":[],"mappings":"AAeA,qBAAa,aAAa;IACxB,OAAO,CAAC,WAAW,CAAM;IACzB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,aAAa,CAAU;IAC/B,OAAO,CAAC,YAAY,CAAgF;IACpG,OAAO,CAAC,qBAAqB,CAAwC;gBAEzD,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,GAAE,OAAe;IAS/E;;OAEG;IACH,OAAO,CAAC,QAAQ;IAShB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAgCzB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAyCxB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAgB7B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAuB7B;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAWlC;;OAEG;IACH,OAAO,CAAC,iCAAiC;IASzC;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IA0C9B;;;OAGG;IACH,OAAO,CAAC,0BAA0B;IAmBlC;;;;OAIG;IACH,OAAO,CAAC,YAAY;IAsDpB;;OAEG;IACH,OAAO,CAAC,QAAQ;IAqBhB;;OAEG;IACH,OAAO,CAAC,cAAc;IAqBtB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAiDzB;;OAEG;IACH,OAAO,CAAC,2BAA2B;IAmCnC;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAuF9B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA6B3B;;OAEG;IACH,OAAO,CAAC,kCAAkC;IA8C1C;;OAEG;IACH,OAAO,CAAC,8BAA8B;IA+CtC;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAU9B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA2B3B;;OAEG;IACH,OAAO,CAAC,OAAO;IA8Df;;OAEG;IACH,OAAO,CAAC,WAAW;CAMpB"}
@@ -37,10 +37,12 @@ exports.PostProcessor = void 0;
37
37
  const fs = __importStar(require("fs"));
38
38
  const path = __importStar(require("path"));
39
39
  class PostProcessor {
40
- constructor(specPath, outputDir) {
40
+ constructor(specPath, outputDir, nestJsSwagger = false) {
41
41
  this.outputDir = outputDir;
42
+ this.nestJsSwagger = nestJsSwagger;
42
43
  this.loadSpec(specPath);
43
44
  this.unionTypeMap = new Map();
45
+ this.discriminatedUnionMap = new Map();
44
46
  this.buildUnionTypeMap();
45
47
  }
46
48
  /**
@@ -69,27 +71,78 @@ class PostProcessor {
69
71
  }
70
72
  for (const [propName, propDef] of Object.entries(schemaObj.properties)) {
71
73
  const propDefObj = propDef;
72
- // Check if this is an anyOf with simple types
74
+ // Handle arrays with oneOf/anyOf items
75
+ if (propDefObj.type === 'array' && propDefObj.items) {
76
+ this.processUnionType(schemaName, propName, propDefObj.items, true);
77
+ }
78
+ // Check if this is a direct anyOf with simple types
73
79
  if (propDefObj.anyOf && Array.isArray(propDefObj.anyOf)) {
74
- const unionType = this.getUnionTypeFromAnyOf(propDefObj.anyOf);
75
- if (unionType) {
76
- // Find the generated class name for this property
77
- const generatedClassName = this.findGeneratedClassNameForProperty(schemaName, propName);
78
- if (generatedClassName) {
79
- if (!this.unionTypeMap.has(generatedClassName)) {
80
- this.unionTypeMap.set(generatedClassName, []);
81
- }
82
- this.unionTypeMap.get(generatedClassName).push({
83
- className: schemaName,
84
- propertyName: propName,
85
- unionType
86
- });
87
- }
88
- }
80
+ this.processUnionType(schemaName, propName, propDefObj, false);
81
+ }
82
+ // Check if this is a direct oneOf with refs (discriminated union)
83
+ if (propDefObj.oneOf && Array.isArray(propDefObj.oneOf)) {
84
+ this.processUnionType(schemaName, propName, propDefObj, false);
85
+ }
86
+ }
87
+ }
88
+ }
89
+ /**
90
+ * Process a property that might be a union type (oneOf/anyOf)
91
+ */
92
+ processUnionType(schemaName, propName, propDefObj, isArrayItems = false) {
93
+ const unionData = propDefObj.anyOf || propDefObj.oneOf;
94
+ if (!unionData || !Array.isArray(unionData)) {
95
+ return;
96
+ }
97
+ // Check if this is a simple union (string | number, etc.)
98
+ const simpleUnionType = this.getUnionTypeFromAnyOf(unionData);
99
+ if (simpleUnionType) {
100
+ const generatedClassName = this.findGeneratedClassNameForProperty(schemaName, propName, isArrayItems);
101
+ if (generatedClassName) {
102
+ if (!this.unionTypeMap.has(generatedClassName)) {
103
+ this.unionTypeMap.set(generatedClassName, []);
104
+ }
105
+ this.unionTypeMap.get(generatedClassName).push({
106
+ className: schemaName,
107
+ propertyName: propName,
108
+ unionType: simpleUnionType
109
+ });
110
+ }
111
+ return;
112
+ }
113
+ // Check if this is a discriminated union (oneOf/anyOf with $ref)
114
+ const refUnionTypes = this.getUnionTypesFromRefs(unionData);
115
+ if (refUnionTypes.length > 0) {
116
+ const generatedClassName = this.findGeneratedClassNameForProperty(schemaName, propName, isArrayItems);
117
+ if (generatedClassName) {
118
+ if (!this.discriminatedUnionMap.has(generatedClassName)) {
119
+ this.discriminatedUnionMap.set(generatedClassName, []);
89
120
  }
121
+ this.discriminatedUnionMap.get(generatedClassName).push({
122
+ className: schemaName,
123
+ propertyName: propName,
124
+ discriminator: propDefObj.discriminator,
125
+ unionTypes: refUnionTypes
126
+ });
90
127
  }
91
128
  }
92
129
  }
130
+ /**
131
+ * Extract class names from $ref union types
132
+ */
133
+ getUnionTypesFromRefs(unionData) {
134
+ const types = [];
135
+ for (const item of unionData) {
136
+ if (item.$ref) {
137
+ // Extract class name from $ref like "#/components/schemas/HelmComponent"
138
+ const match = item.$ref.match(/#\/components\/schemas\/(\w+)/);
139
+ if (match) {
140
+ types.push(match[1]);
141
+ }
142
+ }
143
+ }
144
+ return types;
145
+ }
93
146
  /**
94
147
  * Convert anyOf array to TypeScript union type if all types are simple
95
148
  */
@@ -132,11 +185,13 @@ class PostProcessor {
132
185
  /**
133
186
  * Find the generated class name for a property (OpenAPI Generator creates classes for anyOf)
134
187
  */
135
- findGeneratedClassNameForProperty(schemaName, propertyName) {
188
+ findGeneratedClassNameForProperty(schemaName, propertyName, isArrayItems = false) {
136
189
  // OpenAPI Generator typically creates class names like: SchemaNamePropertyName
137
190
  // e.g., for Replica.count, it might create ReplicaCount
191
+ // For array items with oneOf/anyOf, it adds "Inner": SchemaNamePropertyNameInner
138
192
  const capitalizedPropName = propertyName.charAt(0).toUpperCase() + propertyName.slice(1);
139
- return schemaName + capitalizedPropName;
193
+ const baseName = schemaName + capitalizedPropName;
194
+ return isArrayItems ? baseName + 'Inner' : baseName;
140
195
  }
141
196
  /**
142
197
  * Process all generated TypeScript files
@@ -151,6 +206,12 @@ class PostProcessor {
151
206
  content = this.fixImportTypes(content);
152
207
  // Replace generated classes with union types where appropriate
153
208
  content = this.replaceUnionTypes(content);
209
+ // Fix discriminated unions (remove invalid @Type decorators)
210
+ content = this.fixDiscriminatedUnions(content);
211
+ // Remove NestJS decorators if not enabled (before adding vendor extensions)
212
+ if (!this.nestJsSwagger) {
213
+ content = this.removeNestJsDecorators(content);
214
+ }
154
215
  // Add vendor extensions to comments
155
216
  content = this.addVendorExtensions(content);
156
217
  // Populate vendor extensions in attributeTypeMap
@@ -186,6 +247,7 @@ class PostProcessor {
186
247
  /**
187
248
  * Fix the main index.ts file to export from models/index.js instead of models.js
188
249
  * Also fix API files that import from models
250
+ * Also re-export Configuration from api.ts for convenience
189
251
  */
190
252
  fixMainIndex() {
191
253
  const indexPath = path.join(this.outputDir, 'index.ts');
@@ -213,6 +275,25 @@ class PostProcessor {
213
275
  fs.writeFileSync(filePath, content, 'utf-8');
214
276
  }
215
277
  }
278
+ // Add Configuration re-export to api.ts (Issue #3)
279
+ const apiIndexPath = path.join(this.outputDir, 'api.ts');
280
+ if (fs.existsSync(apiIndexPath)) {
281
+ let content = fs.readFileSync(apiIndexPath, 'utf-8');
282
+ // Check if Configuration is not already exported
283
+ if (!content.includes('export { Configuration }') && !content.includes('export * from \'./configuration')) {
284
+ // Add the export at the top after any existing exports
285
+ const exportPattern = /(export \* from ['"]\.\/)/;
286
+ if (exportPattern.test(content)) {
287
+ // Insert before the first export * from
288
+ content = content.replace(exportPattern, 'export { Configuration } from \'./configuration.js\';\n$1');
289
+ }
290
+ else {
291
+ // No exports found, add at the beginning
292
+ content = `export { Configuration } from './configuration.js';\n${content}`;
293
+ }
294
+ fs.writeFileSync(apiIndexPath, content, 'utf-8');
295
+ }
296
+ }
216
297
  }
217
298
  /**
218
299
  * Walk directory tree and find all .ts files
@@ -285,6 +366,101 @@ class PostProcessor {
285
366
  });
286
367
  return content;
287
368
  }
369
+ /**
370
+ * Build discriminator decorator configuration
371
+ */
372
+ buildDiscriminatorDecorator(matchingInfo) {
373
+ if (!matchingInfo.discriminator) {
374
+ return '';
375
+ }
376
+ const { propertyName, mapping } = matchingInfo.discriminator;
377
+ // Build subTypes array
378
+ const subTypes = matchingInfo.unionTypes.map(typeName => {
379
+ // Find the discriminator value for this type
380
+ let discriminatorValue = typeName.toLowerCase();
381
+ if (mapping) {
382
+ // Look for the discriminator value in the mapping
383
+ for (const [value, ref] of Object.entries(mapping)) {
384
+ if (ref.endsWith(`/${typeName}`)) {
385
+ discriminatorValue = value;
386
+ break;
387
+ }
388
+ }
389
+ }
390
+ return `{ value: ${typeName}, name: '${discriminatorValue}' }`;
391
+ }).join(', ');
392
+ return `@Type(() => Object, {
393
+ discriminator: {
394
+ property: '${propertyName}',
395
+ subTypes: [${subTypes}]
396
+ },
397
+ keepDiscriminatorProperty: true
398
+ })
399
+ `;
400
+ }
401
+ /**
402
+ * Fix discriminated unions by adding discriminator decorators and replacing union type classes
403
+ */
404
+ fixDiscriminatedUnions(content) {
405
+ const classMatch = content.match(/export class (\w+)/);
406
+ if (!classMatch) {
407
+ return content;
408
+ }
409
+ const className = classMatch[1];
410
+ // Handle properties that are discriminated unions
411
+ content = content.replace(/(@Expose\(\)[\s\S]*?)(@Type\(\(\)\s*=>\s*(\w+)\)\s*)?'(\w+)'(\?)?:\s*(Array<(\w+)>|\w+);/g, (fullMatch, exposeDecorator, typeDecorator, typeInDecorator, propName, optional, fullTypeName, arrayInnerType) => {
412
+ // Get the actual type name (could be inside Array<>)
413
+ const typeName = arrayInnerType || fullTypeName;
414
+ // Check if this type is in our discriminated union map
415
+ const discriminatedInfo = this.discriminatedUnionMap.get(typeName);
416
+ if (discriminatedInfo && discriminatedInfo.length > 0) {
417
+ const matchingInfo = discriminatedInfo.find(info => info.className === className && info.propertyName === propName);
418
+ if (matchingInfo) {
419
+ // Create the union type from the ref types
420
+ const unionType = matchingInfo.unionTypes.join(' | ');
421
+ const optionalMarker = optional || '';
422
+ // If it's an array, keep the array wrapper
423
+ const finalType = arrayInnerType ? `Array<${unionType}>` : unionType;
424
+ // Generate discriminator decorator if we have discriminator info
425
+ const discriminatorDecorator = this.buildDiscriminatorDecorator(matchingInfo);
426
+ // Add the discriminator decorator and replace the type with the union
427
+ return `${exposeDecorator}${discriminatorDecorator}'${propName}'${optionalMarker}: ${finalType};`;
428
+ }
429
+ }
430
+ return fullMatch;
431
+ });
432
+ // Remove imports for discriminated union type classes that are no longer needed
433
+ // And add imports for the actual union component types
434
+ this.discriminatedUnionMap.forEach((discriminatedInfo, generatedClassName) => {
435
+ if (discriminatedInfo.some(info => info.className === className)) {
436
+ // Remove the import for this generated union class
437
+ content = content.replace(new RegExp(`import \\{ ${generatedClassName} \\} from [^;]+;\\s*`, 'g'), '');
438
+ content = content.replace(new RegExp(`import type \\{ ${generatedClassName} \\} from [^;]+;\\s*`, 'g'), '');
439
+ // Add imports for the union component types
440
+ const matchingInfo = discriminatedInfo.find(info => info.className === className);
441
+ if (matchingInfo) {
442
+ const importSection = content.match(/(import[\s\S]*?from [^;]+;[\s\S]*?)(\n\nexport class)/);
443
+ if (importSection) {
444
+ // Add imports for each union type component
445
+ let importsToAdd = '';
446
+ matchingInfo.unionTypes.forEach(unionType => {
447
+ const kebabCaseName = this.toKebabCase(unionType);
448
+ const importStatement = `import { ${unionType} } from './${kebabCaseName}.js';\n`;
449
+ // Only add if not already present
450
+ if (!content.includes(importStatement) && !content.includes(`import { ${unionType} }`)) {
451
+ importsToAdd += importStatement;
452
+ }
453
+ });
454
+ if (importsToAdd) {
455
+ // Insert the new imports after the existing imports
456
+ content = content.replace(/(\nimport { Expose, Type } from 'class-transformer';)/, `$1\n${importsToAdd.trim()}`);
457
+ }
458
+ }
459
+ }
460
+ }
461
+ });
462
+ return content;
463
+ }
288
464
  /**
289
465
  * Add vendor extensions to JSDoc comments
290
466
  */
@@ -382,6 +558,16 @@ class PostProcessor {
382
558
  });
383
559
  return extensions;
384
560
  }
561
+ /**
562
+ * Remove NestJS Swagger decorators and imports
563
+ */
564
+ removeNestJsDecorators(content) {
565
+ // Remove @nestjs/swagger import
566
+ content = content.replace(/import\s+\{[^}]*\}\s+from\s+['"]@nestjs\/swagger['"];?\s*/g, '');
567
+ // Remove @ApiProperty decorators (including multi-line with non-greedy match)
568
+ content = content.replace(/@ApiProperty\(\{[\s\S]*?\}\)\s*/g, '');
569
+ return content;
570
+ }
385
571
  /**
386
572
  * Add .js extensions to relative imports
387
573
  */
@@ -429,6 +615,14 @@ class PostProcessor {
429
615
  fs.rmSync(filepath, { force: true });
430
616
  }
431
617
  });
618
+ // Remove generated discriminated union type class files
619
+ this.discriminatedUnionMap.forEach((discriminatedInfo, generatedClassName) => {
620
+ const kebabCaseName = this.toKebabCase(generatedClassName);
621
+ const filepath = path.join(this.outputDir, 'models', `${kebabCaseName}.ts`);
622
+ if (fs.existsSync(filepath)) {
623
+ fs.rmSync(filepath, { force: true });
624
+ }
625
+ });
432
626
  // Update the index.ts to remove exports of deleted union type classes
433
627
  const indexPath = path.join(this.outputDir, 'models', 'index.ts');
434
628
  if (fs.existsSync(indexPath)) {
@@ -438,6 +632,11 @@ class PostProcessor {
438
632
  // Remove export lines for the deleted class
439
633
  indexContent = indexContent.replace(new RegExp(`export \\* from ['"]\\.\\/${kebabCaseName}(\\.js)?['"];?\\s*`, 'g'), '');
440
634
  });
635
+ this.discriminatedUnionMap.forEach((discriminatedInfo, generatedClassName) => {
636
+ const kebabCaseName = this.toKebabCase(generatedClassName);
637
+ // Remove export lines for the deleted class
638
+ indexContent = indexContent.replace(new RegExp(`export \\* from ['"]\\.\\/${kebabCaseName}(\\.js)?['"];?\\s*`, 'g'), '');
639
+ });
441
640
  fs.writeFileSync(indexPath, indexContent, 'utf-8');
442
641
  }
443
642
  }
@@ -1 +1 @@
1
- {"version":3,"file":"post-processor.js","sourceRoot":"","sources":["../src/post-processor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"post-processor.js","sourceRoot":"","sources":["../src/post-processor.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openapi-class-transformer",
3
- "version": "1.0.8",
3
+ "version": "1.0.10",
4
4
  "description": "Generate class-transformer compatible TypeScript classes from OpenAPI specs with full decorator support",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -1,5 +1,6 @@
1
1
 
2
- import { Expose, Type } from 'class-transformer';
2
+ import { Expose, Type } from 'class-transformer';{{#nestJsSwagger}}
3
+ import { ApiProperty } from '@nestjs/swagger';{{/nestJsSwagger}}
3
4
 
4
5
  {{#description}}
5
6
  /**
@@ -22,7 +23,19 @@ export class {{classname}} {{#parent}}extends {{{.}}} {{/parent}}{
22
23
  {{#deprecated}}
23
24
  * @deprecated
24
25
  {{/deprecated}}
25
- */
26
+ */{{#nestJsSwagger}}
27
+ @ApiProperty({
28
+ description: {{#description}}`{{{description}}}`{{/description}}{{^description}}undefined{{/description}},{{#required}}
29
+ required: true,{{/required}}{{^required}}
30
+ required: false,{{/required}}{{#isNullable}}
31
+ nullable: true,{{/isNullable}}{{#deprecated}}
32
+ deprecated: true,{{/deprecated}}{{#isEnum}}
33
+ enum: {{enumName}},{{/isEnum}}{{^isEnum}}{{#isContainer}}
34
+ type: () => [{{#items}}{{^isPrimitiveType}}{{{complexType}}}{{/isPrimitiveType}}{{#isPrimitiveType}}{{{datatype}}}{{/isPrimitiveType}}{{/items}}],{{/isContainer}}{{^isContainer}}{{^isPrimitiveType}}
35
+ type: () => {{{dataType}}},{{/isPrimitiveType}}{{#isPrimitiveType}}
36
+ type: '{{{datatype}}}',{{/isPrimitiveType}}{{/isContainer}}{{/isEnum}}{{#dataFormat}}
37
+ format: '{{dataFormat}}',{{/dataFormat}}
38
+ }){{/nestJsSwagger}}
26
39
  @Expose()
27
40
  {{^isPrimitiveType}}{{^isEnum}}{{#isContainer}}{{#items}}{{^isPrimitiveType}}@Type(() => {{{complexType}}}){{/isPrimitiveType}}{{/items}}{{/isContainer}}{{^isContainer}}@Type(() => {{{dataType}}}){{/isContainer}}
28
41
  {{/isEnum}}{{/isPrimitiveType}}'{{baseName}}'{{^required}}?{{/required}}: {{#isEnum}}{{{datatypeWithEnum}}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}{{#isNullable}} | null{{/isNullable}};