openapi-class-transformer 1.0.23 → 1.1.2

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
@@ -5,6 +5,7 @@ Generate class-transformer compatible TypeScript classes from OpenAPI specificat
5
5
  ## Features
6
6
 
7
7
  ✨ **Class-Transformer Compatible**: Generates TypeScript classes with `@Expose()` and `@Type()` decorators
8
+ ✅ **Class-Validator Support** (NEW in v1.1.0): Automatically generates validation decorators (`@IsString()`, `@IsOptional()`, etc.)
8
9
  🎯 **Type-Safe**: Full TypeScript support with proper type definitions
9
10
  📦 **Vendor Extensions**: Automatically includes all `x-*` properties in JSDoc comments
10
11
  🔧 **Customizable**: Support for custom templates and additional properties
@@ -37,6 +38,30 @@ npx openapi-class-transformer generate \
37
38
  -o ./src/api \
38
39
  -t ./custom-templates
39
40
 
41
+ # Generate only models (skip APIs)
42
+ npx openapi-class-transformer generate \
43
+ -i ./spec.json \
44
+ -o ./output \
45
+ --models-only
46
+
47
+ # With NestJS Swagger decorators
48
+ npx openapi-class-transformer generate \
49
+ -i ./spec.json \
50
+ -o ./output \
51
+ --nestjs-swagger
52
+
53
+ # With class-validator decorators (NEW in v1.1.0)
54
+ npx openapi-class-transformer generate \
55
+ -i ./spec.json \
56
+ -o ./output \
57
+ --class-validator
58
+
59
+ # Skip .js extensions (for bundlers like webpack/Next.js)
60
+ npx openapi-class-transformer generate \
61
+ -i ./spec.json \
62
+ -o ./output \
63
+ --skip-js-extensions
64
+
40
65
  # With additional properties
41
66
  npx openapi-class-transformer generate \
42
67
  -i ./spec.json \
@@ -44,6 +69,19 @@ npx openapi-class-transformer generate \
44
69
  --additional-properties modelPackage=dto,apiPackage=services
45
70
  ```
46
71
 
72
+ #### CLI Options
73
+
74
+ | Option | Description |
75
+ |--------|-------------|
76
+ | `-i, --input <path>` | **Required**. Path to OpenAPI specification file (JSON or YAML) |
77
+ | `-o, --output <path>` | **Required**. Output directory for generated files |
78
+ | `-t, --template <path>` | Custom template directory |
79
+ | `--models-only` | Generate only model classes (skip APIs and configuration) |
80
+ | `--nestjs-swagger` | Include NestJS Swagger `@ApiProperty` decorators |
81
+ | `--skip-js-extensions` | Skip adding .js extensions to imports/exports |
82
+ | `--class-validator` | Include class-validator decorators (`@IsString`, `@IsOptional`, etc.) |
83
+ | `--additional-properties <props>` | Additional OpenAPI Generator properties (key=value,key2=value2) |
84
+
47
85
  ### Programmatic API
48
86
 
49
87
  ```typescript
@@ -54,6 +92,14 @@ const generator = new Generator({
54
92
  outputDir: './src/generated',
55
93
  // Optional: custom template directory
56
94
  templateDir: './custom-templates',
95
+ // Optional: generate only models (skip APIs)
96
+ modelsOnly: false,
97
+ // Optional: include NestJS Swagger decorators
98
+ nestJsSwagger: false,
99
+ // Optional: skip .js extensions
100
+ skipJsExtensions: false,
101
+ // Optional: include class-validator decorators (NEW in v1.1.0)
102
+ classValidator: false,
57
103
  // Optional: additional OpenAPI Generator properties
58
104
  additionalProperties: {
59
105
  modelPackage: 'dto',
@@ -165,6 +211,129 @@ const user = plainToInstance(User, plainData);
165
211
  // ✅ user.profile is properly typed Profile instance
166
212
  ```
167
213
 
214
+ ## Use with class-validator (NEW in v1.1.0)
215
+
216
+ When you generate models with the `--class-validator` flag, the generator automatically adds appropriate validation decorators based on your OpenAPI schema:
217
+
218
+ ### Installation
219
+
220
+ First, install class-validator as a peer dependency:
221
+
222
+ ```bash
223
+ npm install class-validator
224
+ # or
225
+ yarn add class-validator
226
+ # or
227
+ pnpm add class-validator
228
+ ```
229
+
230
+ ### Generation
231
+
232
+ ```bash
233
+ npx openapi-class-transformer generate \
234
+ -i ./api-spec.json \
235
+ -o ./src/generated \
236
+ --class-validator
237
+ ```
238
+
239
+ ### OpenAPI Schema
240
+
241
+ ```yaml
242
+ components:
243
+ schemas:
244
+ User:
245
+ type: object
246
+ required:
247
+ - email
248
+ - age
249
+ properties:
250
+ email:
251
+ type: string
252
+ format: email
253
+ age:
254
+ type: integer
255
+ minimum: 0
256
+ maximum: 120
257
+ bio:
258
+ type: string
259
+ minLength: 10
260
+ maxLength: 500
261
+ ```
262
+
263
+ ### Generated Output
264
+
265
+ ```typescript
266
+ import { Expose, Type } from 'class-transformer';
267
+ import { IsEmail, IsInt, IsOptional, IsString, Length, Max, Min } from 'class-validator';
268
+
269
+ export class User {
270
+ @IsEmail()
271
+ @Expose()
272
+ 'email': string;
273
+
274
+ @IsInt()
275
+ @Min(0)
276
+ @Max(120)
277
+ @Expose()
278
+ 'age': number;
279
+
280
+ @IsOptional()
281
+ @IsString()
282
+ @Length(10, 500)
283
+ @Expose()
284
+ 'bio'?: string;
285
+ }
286
+ ```
287
+
288
+ ### Usage with Validation
289
+
290
+ ```typescript
291
+ import { plainToInstance } from 'class-transformer';
292
+ import { validate } from 'class-validator';
293
+ import { User } from './generated/models/user';
294
+
295
+ const plainData = {
296
+ email: 'john@example.com',
297
+ age: 25,
298
+ bio: 'Software developer with 5 years of experience'
299
+ };
300
+
301
+ // Transform to class instance
302
+ const user = plainToInstance(User, plainData);
303
+
304
+ // Validate
305
+ const errors = await validate(user);
306
+
307
+ if (errors.length > 0) {
308
+ console.error('Validation failed:', errors);
309
+ } else {
310
+ console.log('Validation passed!');
311
+ }
312
+ ```
313
+
314
+ ### Supported Decorators
315
+
316
+ The generator automatically adds decorators based on OpenAPI schema properties:
317
+
318
+ | OpenAPI Property | Generated Decorator |
319
+ |-----------------|---------------------|
320
+ | `type: string` | `@IsString()` |
321
+ | `type: number` | `@IsNumber()` |
322
+ | `type: integer` | `@IsNumber()` |
323
+ | `type: boolean` | `@IsBoolean()` |
324
+ | `type: array` | `@IsArray()` |
325
+ | `type: object` or `$ref` | `@ValidateNested()` |
326
+ | Not in `required` array | `@IsOptional()` |
327
+ | `format: email` | `@IsEmail()` |
328
+ | `format: url` or `format: uri` | `@IsUrl()` |
329
+ | `format: uuid` | `@IsUUID()` |
330
+ | `pattern: <regex>` | `@Matches(/<regex>/)` |
331
+ | `minLength` / `maxLength` | `@Length(min, max)` |
332
+ | `minimum` / `maximum` | `@Min(min)` / `@Max(max)` |
333
+ | `enum` | `@IsIn([...values])` |
334
+
335
+ For array properties with object items, `@ValidateNested({ each: true })` is added automatically.
336
+
168
337
  ### Discriminated Unions (Polymorphic Types)
169
338
 
170
339
  When your OpenAPI spec uses `oneOf` or `anyOf` with discriminators, the generator automatically creates discriminator decorators for proper runtime polymorphism:
@@ -373,6 +542,31 @@ interface GeneratorOptions {
373
542
  */
374
543
  templateDir?: string;
375
544
 
545
+ /**
546
+ * Generate only model classes (skip APIs and configuration)
547
+ * @default false
548
+ */
549
+ modelsOnly?: boolean;
550
+
551
+ /**
552
+ * Include NestJS Swagger @ApiProperty decorators
553
+ * @default false
554
+ */
555
+ nestJsSwagger?: boolean;
556
+
557
+ /**
558
+ * Skip adding .js extensions to imports/exports
559
+ * Useful for bundlers like webpack/Next.js that don't want extensions
560
+ * @default false
561
+ */
562
+ skipJsExtensions?: boolean;
563
+
564
+ /**
565
+ * Include class-validator decorators (@IsString, @IsOptional, etc.)
566
+ * @default false
567
+ */
568
+ classValidator?: boolean;
569
+
376
570
  /**
377
571
  * Additional OpenAPI Generator properties
378
572
  */
package/dist/cli.js CHANGED
@@ -48,6 +48,10 @@ program
48
48
  .requiredOption('-i, --input <path>', 'Path to OpenAPI specification file')
49
49
  .requiredOption('-o, --output <path>', 'Output directory for generated files')
50
50
  .option('-t, --template <path>', 'Custom template directory')
51
+ .option('--models-only', 'Generate only model classes (skip APIs and configuration)')
52
+ .option('--nestjs-swagger', 'Include NestJS Swagger @ApiProperty decorators')
53
+ .option('--skip-js-extensions', 'Skip adding .js extensions to imports/exports')
54
+ .option('--class-validator', 'Include class-validator decorators (@IsString, @IsOptional, etc.)')
51
55
  .option('--additional-properties <props>', 'Additional OpenAPI Generator properties (key=value,key2=value2)')
52
56
  .action(async (options) => {
53
57
  try {
@@ -64,6 +68,10 @@ program
64
68
  const generatorOptions = {
65
69
  inputSpec: path.resolve(options.input),
66
70
  outputDir: path.resolve(options.output),
71
+ modelsOnly: options.modelsOnly || false,
72
+ nestJsSwagger: options.nestjsSwagger || false,
73
+ skipJsExtensions: options.skipJsExtensions || false,
74
+ classValidator: options.classValidator || false,
67
75
  additionalProperties
68
76
  };
69
77
  // Only set templateDir if custom template is provided
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,yCAAoC;AACpC,2CAAwC;AACxC,2CAA6B;AAE7B,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,2BAA2B,CAAC;KACjC,WAAW,CAAC,6EAA6E,CAAC;KAC1F,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,OAAO;KACJ,OAAO,CAAC,UAAU,CAAC;KACnB,WAAW,CAAC,wDAAwD,CAAC;KACrE,cAAc,CAAC,oBAAoB,EAAE,oCAAoC,CAAC;KAC1E,cAAc,CAAC,qBAAqB,EAAE,sCAAsC,CAAC;KAC7E,MAAM,CAAC,uBAAuB,EAAE,2BAA2B,CAAC;KAC5D,MAAM,CAAC,iCAAiC,EAAE,iEAAiE,CAAC;KAC5G,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,IAAI,CAAC;QACH,MAAM,oBAAoB,GAA2B,EAAE,CAAC;QACxD,IAAI,OAAO,CAAC,oBAAoB,EAAE,CAAC;YACjC,OAAO,CAAC,oBAAoB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,IAAY,EAAE,EAAE;gBAC/D,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACrC,IAAI,GAAG,IAAI,KAAK,EAAE,CAAC;oBACjB,oBAAoB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACpC,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QAED,kEAAkE;QAClE,MAAM,gBAAgB,GAAQ;YAC5B,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;YACtC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;YACvC,oBAAoB;SACrB,CAAC;QAEF,sDAAsD;QACtD,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACrB,gBAAgB,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAChE,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,qBAAS,CAAC,gBAAgB,CAAC,CAAC;QAElD,MAAM,SAAS,CAAC,QAAQ,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;QACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACtF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,yCAAoC;AACpC,2CAAwC;AACxC,2CAA6B;AAE7B,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,2BAA2B,CAAC;KACjC,WAAW,CAAC,6EAA6E,CAAC;KAC1F,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,OAAO;KACJ,OAAO,CAAC,UAAU,CAAC;KACnB,WAAW,CAAC,wDAAwD,CAAC;KACrE,cAAc,CAAC,oBAAoB,EAAE,oCAAoC,CAAC;KAC1E,cAAc,CAAC,qBAAqB,EAAE,sCAAsC,CAAC;KAC7E,MAAM,CAAC,uBAAuB,EAAE,2BAA2B,CAAC;KAC5D,MAAM,CAAC,eAAe,EAAE,2DAA2D,CAAC;KACpF,MAAM,CAAC,kBAAkB,EAAE,gDAAgD,CAAC;KAC5E,MAAM,CAAC,sBAAsB,EAAE,+CAA+C,CAAC;KAC/E,MAAM,CAAC,mBAAmB,EAAE,mEAAmE,CAAC;KAChG,MAAM,CAAC,iCAAiC,EAAE,iEAAiE,CAAC;KAC5G,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,IAAI,CAAC;QACH,MAAM,oBAAoB,GAA2B,EAAE,CAAC;QACxD,IAAI,OAAO,CAAC,oBAAoB,EAAE,CAAC;YACjC,OAAO,CAAC,oBAAoB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,IAAY,EAAE,EAAE;gBAC/D,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACrC,IAAI,GAAG,IAAI,KAAK,EAAE,CAAC;oBACjB,oBAAoB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACpC,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QAED,kEAAkE;QAClE,MAAM,gBAAgB,GAAQ;YAC5B,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;YACtC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;YACvC,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,KAAK;YACvC,aAAa,EAAE,OAAO,CAAC,aAAa,IAAI,KAAK;YAC7C,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,IAAI,KAAK;YACnD,cAAc,EAAE,OAAO,CAAC,cAAc,IAAI,KAAK;YAC/C,oBAAoB;SACrB,CAAC;QAEF,sDAAsD;QACtD,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACrB,gBAAgB,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAChE,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,qBAAS,CAAC,gBAAgB,CAAC,CAAC;QAElD,MAAM,SAAS,CAAC,QAAQ,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;QACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACtF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"}
@@ -28,6 +28,16 @@ export interface GeneratorOptions {
28
28
  * @default false
29
29
  */
30
30
  skipJsExtensions?: boolean;
31
+ /**
32
+ * Include class-validator decorators (@IsString, @IsOptional, etc.)
33
+ * @default false
34
+ */
35
+ classValidator?: boolean;
36
+ /**
37
+ * Export style for generated index files
38
+ * @default 'namespace'
39
+ */
40
+ exportStyle?: 'namespace' | 'direct' | 'both';
31
41
  /**
32
42
  * Additional OpenAPI Generator properties
33
43
  */
@@ -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;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B;;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;IAarC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA8B7B;;OAEG;IACH,OAAO,CAAC,eAAe;IAUvB;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CA8FhC"}
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;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB;;;OAGG;IACH,WAAW,CAAC,EAAE,WAAW,GAAG,QAAQ,GAAG,MAAM,CAAC;IAE9C;;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;IAerC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA8B7B;;OAEG;IACH,OAAO,CAAC,eAAe;IAUvB;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAgGhC"}
package/dist/generator.js CHANGED
@@ -45,6 +45,8 @@ class Generator {
45
45
  modelsOnly: false,
46
46
  nestJsSwagger: false,
47
47
  skipJsExtensions: false,
48
+ classValidator: false,
49
+ exportStyle: 'namespace',
48
50
  additionalProperties: {},
49
51
  ...options
50
52
  };
@@ -162,7 +164,7 @@ class Generator {
162
164
  }
163
165
  // Post-process generated files
164
166
  console.log('Post-processing generated files...');
165
- const postProcessor = new post_processor_1.PostProcessor(this.options.inputSpec, this.options.outputDir, this.options.nestJsSwagger, this.options.skipJsExtensions);
167
+ const postProcessor = new post_processor_1.PostProcessor(this.options.inputSpec, this.options.outputDir, this.options.nestJsSwagger, this.options.skipJsExtensions, this.options.classValidator, this.options.exportStyle);
166
168
  await postProcessor.process();
167
169
  console.log('Generation complete!');
168
170
  }
@@ -1 +1 @@
1
- {"version":3,"file":"generator.js","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iDAAyC;AACzC,uCAAyB;AACzB,2CAA6B;AAC7B,qDAAiD;AA4CjD,MAAa,SAAS;IAGpB,YAAY,OAAyB;QACnC,IAAI,CAAC,OAAO,GAAG;YACb,WAAW,EAAE,IAAI,CAAC,qBAAqB,EAAE;YACzC,UAAU,EAAE,KAAK;YACjB,aAAa,EAAE,KAAK;YACpB,gBAAgB,EAAE,KAAK;YACvB,oBAAoB,EAAE,EAAE;YACxB,GAAG,OAAO;SACX,CAAC;QAEF,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAED;;OAEG;IACK,qBAAqB;QAC3B,iEAAiE;QACjE,oCAAoC;QACpC,oCAAoC;QACpC,2CAA2C;QAC3C,yDAAyD;QACzD,2BAA2B;QAC3B,MAAM,KAAK,GAAG;YACZ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,EAAqC,MAAM;YAC/E,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC,EAAkC,OAAO;YAChF,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,oBAAoB,CAAC,EAA+B,iBAAiB;YAC1F,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,kDAAkD,CAAC,CAAE,WAAW;SAC1F,CAAC;QAEF,sDAAsD;QACtD,IAAI,CAAC;YACH,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,2BAA2B,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC;QACzF,CAAC;QAAC,MAAM,CAAC;YACP,kCAAkC;QACpC,CAAC;QAED,KAAK,MAAM,YAAY,IAAI,KAAK,EAAE,CAAC;YACjC,IAAI,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;gBAChC,OAAO,YAAY,CAAC;YACtB,CAAC;QACH,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACxD,CAAC;IAED;;OAEG;IACK,eAAe;QACrB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3C,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;QACrE,CAAC;QAED,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;YAC7C,MAAM,IAAI,KAAK,CAAC,iCAAiC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;QAC/E,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ;QACZ,IAAI,CAAC;YACH,iCAAiC;YACjC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAE1D,qCAAqC;YACrC,MAAM,eAAe,GAAG;gBACtB,wBAAwB,EAAE,MAAM;gBAChC,YAAY,EAAE,QAAQ;gBACtB,UAAU,EAAE,KAAK;gBACjB,oBAAoB,EAAE,MAAM;gBAC5B,WAAW,EAAE,MAAM;gBACnB,yBAAyB,EAAE,MAAM;gBACjC,eAAe,EAAE,MAAM;gBACvB,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;gBAC5D,GAAG,IAAI,CAAC,OAAO,CAAC,oBAAoB;aACrC,CAAC;YAEF,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC;iBAChD,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;iBACxC,IAAI,CAAC,GAAG,CAAC,CAAC;YAEb,wBAAwB;YACxB,uEAAuE;YACvE,MAAM,YAAY,GAAG;gBACnB,mBAAmB;gBACnB,UAAU;gBACV,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG;gBAChC,qBAAqB;gBACrB,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG;gBAChC,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG;gBAClC,2BAA2B,WAAW,EAAE;aACzC,CAAC;YAEF,oEAAoE;YACpE,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;gBAC5B,YAAY,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;YAChD,CAAC;YAED,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAEvC,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;YAE5C,2EAA2E;YAC3E,MAAM,WAAW,GAAG;gBAClB,GAAG,OAAO,CAAC,GAAG;gBACd,IAAI,EAAE,oCAAoC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,EAAE;aACnE,CAAC;YAEF,IAAI,CAAC;gBACH,IAAA,wBAAQ,EAAC,OAAO,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,wCAAwC;YACrG,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,qCAAqC;gBACrC,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;gBACvF,0CAA0C;gBAC1C,MAAM,eAAe,GAAG;oBACtB,KAAK;oBACL,IAAI;oBACJ,qCAAqC;oBACrC,UAAU;oBACV,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG;oBAChC,qBAAqB;oBACrB,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG;oBAChC,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG;oBAClC,2BAA2B,WAAW,EAAE;iBACzC,CAAC;gBAEF,oEAAoE;gBACpE,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;oBAC5B,eAAe,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;gBACnD,CAAC;gBAED,MAAM,UAAU,GAAG,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC7C,IAAA,wBAAQ,EAAC,UAAU,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC;YAC5D,CAAC;YAED,+BAA+B;YAC/B,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;YAClD,MAAM,aAAa,GAAG,IAAI,8BAAa,CACrC,IAAI,CAAC,OAAO,CAAC,SAAS,EACtB,IAAI,CAAC,OAAO,CAAC,SAAS,EACtB,IAAI,CAAC,OAAO,CAAC,aAAa,EAC1B,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAC9B,CAAC;YACF,MAAM,aAAa,CAAC,OAAO,EAAE,CAAC;YAE9B,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;QACtC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;gBAC3B,MAAM,IAAI,KAAK,CAAC,+BAA+B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YAClE,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;CACF;AA/JD,8BA+JC"}
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,14 @@
1
+ import { ExportStyle } from './utils/export-style';
1
2
  export declare class PostProcessor {
2
3
  private openApiSpec;
3
4
  private outputDir;
4
5
  private nestJsSwagger;
5
6
  private skipJsExtensions;
7
+ private classValidator;
8
+ private exportStyle;
6
9
  private unionTypeMap;
7
10
  private discriminatedUnionMap;
8
- constructor(specPath: string, outputDir: string, nestJsSwagger?: boolean, skipJsExtensions?: boolean);
11
+ constructor(specPath: string, outputDir: string, nestJsSwagger?: boolean, skipJsExtensions?: boolean, classValidator?: boolean, exportStyle?: ExportStyle);
9
12
  /**
10
13
  * Load OpenAPI specification
11
14
  */
@@ -132,10 +135,31 @@ export declare class PostProcessor {
132
135
  * Add .js extensions to relative imports
133
136
  */
134
137
  private fixImportExtensions;
138
+ /**
139
+ * Remove .js extensions from relative imports
140
+ * Used when skipJsExtensions is true to remove extensions that OpenAPI generator added
141
+ */
142
+ private removeImportExtensions;
135
143
  /**
136
144
  * Clean up unnecessary generated files
137
145
  */
138
146
  private cleanup;
147
+ /**
148
+ * Ensure models/index.ts exists with proper exports
149
+ */
150
+ private ensureModelsIndex;
151
+ /**
152
+ * Add class-validator decorators to properties
153
+ */
154
+ private addClassValidatorDecorators;
155
+ /**
156
+ * Get validation decorators for a property based on its OpenAPI definition
157
+ */
158
+ private getValidationDecorators;
159
+ /**
160
+ * Get the schema for a class by looking it up in the OpenAPI spec
161
+ */
162
+ private getSchemaForClass;
139
163
  /**
140
164
  * Convert PascalCase to kebab-case
141
165
  */
@@ -1 +1 @@
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,gBAAgB,CAAU;IAClC,OAAO,CAAC,YAAY,CAAgF;IACpG,OAAO,CAAC,qBAAqB,CAAwC;gBAEzD,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,GAAE,OAAe,EAAE,gBAAgB,GAAE,OAAe;IAUlH;;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;IAuD9B;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IA2C7B;;OAEG;IACH,OAAO,CAAC,6BAA6B;IAiCrC;;;OAGG;IACH,OAAO,CAAC,0BAA0B;IAmBlC;;;;OAIG;IACH,OAAO,CAAC,YAAY;IAsDpB;;OAEG;IACH,OAAO,CAAC,QAAQ;IAqBhB;;;;;;;;OAQG;IACH,OAAO,CAAC,cAAc;IAsBtB;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,4BAA4B;IA+FpC;;;;;;OAMG;IACH,OAAO,CAAC,uBAAuB;IA2C/B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAiDzB;;;;;OAKG;IACH,OAAO,CAAC,0BAA0B;IA0DlC;;OAEG;IACH,OAAO,CAAC,2BAA2B;IAmCnC;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAyG9B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA6B3B;;OAEG;IACH,OAAO,CAAC,kCAAkC;IAyJ1C;;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"}
1
+ {"version":3,"file":"post-processor.d.ts","sourceRoot":"","sources":["../src/post-processor.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,WAAW,EAGZ,MAAM,sBAAsB,CAAC;AAc9B,qBAAa,aAAa;IACxB,OAAO,CAAC,WAAW,CAAM;IACzB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,aAAa,CAAU;IAC/B,OAAO,CAAC,gBAAgB,CAAU;IAClC,OAAO,CAAC,cAAc,CAAU;IAChC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,YAAY,CAAgF;IACpG,OAAO,CAAC,qBAAqB,CAAwC;gBAGnE,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,aAAa,GAAE,OAAe,EAC9B,gBAAgB,GAAE,OAAe,EACjC,cAAc,GAAE,OAAe,EAC/B,WAAW,GAAE,WAAyB;IAaxC;;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;IA8D9B;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IA2C7B;;OAEG;IACH,OAAO,CAAC,6BAA6B;IAiCrC;;;OAGG;IACH,OAAO,CAAC,0BAA0B;IAmBlC;;;;OAIG;IACH,OAAO,CAAC,YAAY;IAsDpB;;OAEG;IACH,OAAO,CAAC,QAAQ;IAqBhB;;;;;;;;OAQG;IACH,OAAO,CAAC,cAAc;IAsBtB;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,4BAA4B;IA+FpC;;;;;;OAMG;IACH,OAAO,CAAC,uBAAuB;IA2C/B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAiDzB;;;;;OAKG;IACH,OAAO,CAAC,0BAA0B;IA0DlC;;OAEG;IACH,OAAO,CAAC,2BAA2B;IAmCnC;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAyG9B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA6B3B;;OAEG;IACH,OAAO,CAAC,kCAAkC;IAyJ1C;;OAEG;IACH,OAAO,CAAC,8BAA8B;IA+CtC;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAU9B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA2B3B;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IA6B9B;;OAEG;IACH,OAAO,CAAC,OAAO;IAuCf;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA2FzB;;OAEG;IACH,OAAO,CAAC,2BAA2B;IA0EnC;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAsH/B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA0BzB;;OAEG;IACH,OAAO,CAAC,WAAW;CAMpB"}