@devlearning/swagger-generator 1.1.0 → 1.1.1
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/.vscode/launch.json +28 -28
- package/README.md +209 -209
- package/dist/api.constants.js +22 -22
- package/dist/generators-writers/angular/api-angular-writer.js +15 -15
- package/dist/generators-writers/angular/constants.js +24 -24
- package/dist/generators-writers/angular/model-angular-writer.js +6 -6
- package/dist/generators-writers/dart/api-dart-writer.js +8 -2
- package/dist/generators-writers/dart/templates/api.mustache +49 -36
- package/dist/generators-writers/dart/templates/enum.mustache +14 -14
- package/dist/generators-writers/dart/templates/model.mustache +17 -17
- package/dist/generators-writers/nextjs/api-nextjs-writer.js +12 -12
- package/dist/generators-writers/nextjs/constants.js +4 -4
- package/dist/generators-writers/nextjs/model-nextjs-writer.js +6 -6
- package/package.json +45 -45
- package/src/api.constants.ts +26 -26
- package/src/generator-old.ts +449 -449
- package/src/generator.ts +582 -582
- package/src/generators-writers/angular/api-angular-writer.ts +141 -141
- package/src/generators-writers/angular/constants.ts +36 -36
- package/src/generators-writers/angular/model-angular-writer.ts +62 -62
- package/src/generators-writers/dart/api-dart-writer.ts +198 -190
- package/src/generators-writers/dart/model-dart-writer.ts +162 -162
- package/src/generators-writers/dart/models/import-definition-dart.ts +5 -5
- package/src/generators-writers/dart/normalizator.ts +72 -72
- package/src/generators-writers/dart/templates/api.mustache +49 -36
- package/src/generators-writers/dart/templates/enum.mustache +14 -14
- package/src/generators-writers/dart/templates/model.mustache +17 -17
- package/src/generators-writers/nextjs/api-nextjs-writer.ts +156 -156
- package/src/generators-writers/nextjs/constants.ts +5 -5
- package/src/generators-writers/nextjs/model-nextjs-writer.ts +61 -61
- package/src/generators-writers/utils.ts +78 -78
- package/src/index.ts +96 -96
- package/src/models/api-dto.ts +17 -17
- package/src/models/enum-value-dto.ts +3 -3
- package/src/models/model-dto.ts +9 -9
- package/src/models/parameter-dto.ts +7 -7
- package/src/models/property-dto.ts +4 -4
- package/src/models/swagger/swagger-component-property.ts +11 -11
- package/src/models/swagger/swagger-component.ts +17 -17
- package/src/models/swagger/swagger-content.ts +4 -4
- package/src/models/swagger/swagger-info.ts +3 -3
- package/src/models/swagger/swagger-method.ts +7 -7
- package/src/models/swagger/swagger-schema.ts +20 -20
- package/src/models/swagger/swagger.ts +38 -38
- package/src/models/type-dto.ts +7 -7
- package/src/swagger-downloader.ts +12 -12
- package/tsconfig.json +28 -28
- package/dist/models/swagger-component-property.js +0 -1
- package/dist/models/swagger-component.js +0 -1
- package/dist/models/swagger-content.js +0 -1
- package/dist/models/swagger-info.js +0 -1
- package/dist/models/swagger-method.js +0 -1
- package/dist/models/swagger-schema.js +0 -1
- package/dist/models/swagger.js +0 -1
package/src/index.ts
CHANGED
|
@@ -1,97 +1,97 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
import yargs from 'yargs';
|
|
4
|
-
import { hideBin } from 'yargs/helpers';
|
|
5
|
-
import { Generator } from './generator.js';
|
|
6
|
-
import { SwaggerDownloader } from './swagger-downloader.js';
|
|
7
|
-
|
|
8
|
-
export enum DateTimeLibrary {
|
|
9
|
-
Moment = 'moment',
|
|
10
|
-
DateFns = 'date-fn',
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
export enum TargetGeneration {
|
|
14
|
-
Angular = 'angular',
|
|
15
|
-
Next = 'next',
|
|
16
|
-
Flutter = 'flutter',
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
export interface CommandLineArgs {
|
|
20
|
-
swaggerJsonUrl: string;
|
|
21
|
-
outputDirectory: string;
|
|
22
|
-
target: TargetGeneration;
|
|
23
|
-
dateTimeLibrary?: DateTimeLibrary;
|
|
24
|
-
package?: string;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
const argv = yargs(hideBin(process.argv))
|
|
28
|
-
.scriptName("swagger-gen")
|
|
29
|
-
.usage('Usage: $0 --url <swaggerJsonUrl> --output <outputDirectory> --target <target> [--dateTimeLibrary <dateTimeLibrary>] [--package <name>]')
|
|
30
|
-
.option('url', {
|
|
31
|
-
alias: 'u',
|
|
32
|
-
type: 'string',
|
|
33
|
-
demandOption: true,
|
|
34
|
-
describe: 'URL of swagger.json file',
|
|
35
|
-
})
|
|
36
|
-
.option('output', {
|
|
37
|
-
alias: 'o',
|
|
38
|
-
type: 'string',
|
|
39
|
-
demandOption: true,
|
|
40
|
-
describe: 'Output directory for generated code',
|
|
41
|
-
})
|
|
42
|
-
.option('target', {
|
|
43
|
-
alias: 't',
|
|
44
|
-
type: 'string',
|
|
45
|
-
choices: ['angular', 'next', 'flutter'],
|
|
46
|
-
demandOption: true,
|
|
47
|
-
describe: 'Target format for the generated code',
|
|
48
|
-
})
|
|
49
|
-
.option('dateTimeLibrary', {
|
|
50
|
-
alias: 'd',
|
|
51
|
-
type: 'string',
|
|
52
|
-
choices: ['moment', 'date-fns'],
|
|
53
|
-
default: 'date-fns',
|
|
54
|
-
describe: 'Date library to use for date handling',
|
|
55
|
-
})
|
|
56
|
-
.option('package', {
|
|
57
|
-
alias: 'p',
|
|
58
|
-
type: 'string',
|
|
59
|
-
describe: 'For Dart: package name for Dart project',
|
|
60
|
-
})
|
|
61
|
-
.help()
|
|
62
|
-
.parseSync();
|
|
63
|
-
|
|
64
|
-
const commandLineArgs: CommandLineArgs = {
|
|
65
|
-
swaggerJsonUrl: argv.url,
|
|
66
|
-
outputDirectory: argv.output,
|
|
67
|
-
target: parseTargetGeneration(argv.target),
|
|
68
|
-
dateTimeLibrary: parseDateTimeLibrary(argv.dateTimeLibrary),
|
|
69
|
-
package: argv.package ?? '',
|
|
70
|
-
};
|
|
71
|
-
|
|
72
|
-
const swaggerDownloader = new SwaggerDownloader();
|
|
73
|
-
|
|
74
|
-
swaggerDownloader.download(new URL(commandLineArgs.swaggerJsonUrl))
|
|
75
|
-
.then(swaggerDoc => {
|
|
76
|
-
return new Generator(swaggerDoc, commandLineArgs);
|
|
77
|
-
})
|
|
78
|
-
.then(generator => { generator.generate(); });
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
// require('./index.js')({swaggerDownloader});
|
|
82
|
-
|
|
83
|
-
function parseDateTimeLibrary(value: string): DateTimeLibrary | undefined {
|
|
84
|
-
const values = Object.values(DateTimeLibrary);
|
|
85
|
-
if (values.includes(value as DateTimeLibrary)) {
|
|
86
|
-
return value as DateTimeLibrary;
|
|
87
|
-
}
|
|
88
|
-
return undefined;
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
function parseTargetGeneration(value: string): TargetGeneration {
|
|
92
|
-
const values = Object.values(TargetGeneration);
|
|
93
|
-
if (values.includes(value as TargetGeneration)) {
|
|
94
|
-
return value as TargetGeneration;
|
|
95
|
-
}
|
|
96
|
-
throw new Error(`Invalid OutputFormat: ${value}`);
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
import yargs from 'yargs';
|
|
4
|
+
import { hideBin } from 'yargs/helpers';
|
|
5
|
+
import { Generator } from './generator.js';
|
|
6
|
+
import { SwaggerDownloader } from './swagger-downloader.js';
|
|
7
|
+
|
|
8
|
+
export enum DateTimeLibrary {
|
|
9
|
+
Moment = 'moment',
|
|
10
|
+
DateFns = 'date-fn',
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export enum TargetGeneration {
|
|
14
|
+
Angular = 'angular',
|
|
15
|
+
Next = 'next',
|
|
16
|
+
Flutter = 'flutter',
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export interface CommandLineArgs {
|
|
20
|
+
swaggerJsonUrl: string;
|
|
21
|
+
outputDirectory: string;
|
|
22
|
+
target: TargetGeneration;
|
|
23
|
+
dateTimeLibrary?: DateTimeLibrary;
|
|
24
|
+
package?: string;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
const argv = yargs(hideBin(process.argv))
|
|
28
|
+
.scriptName("swagger-gen")
|
|
29
|
+
.usage('Usage: $0 --url <swaggerJsonUrl> --output <outputDirectory> --target <target> [--dateTimeLibrary <dateTimeLibrary>] [--package <name>]')
|
|
30
|
+
.option('url', {
|
|
31
|
+
alias: 'u',
|
|
32
|
+
type: 'string',
|
|
33
|
+
demandOption: true,
|
|
34
|
+
describe: 'URL of swagger.json file',
|
|
35
|
+
})
|
|
36
|
+
.option('output', {
|
|
37
|
+
alias: 'o',
|
|
38
|
+
type: 'string',
|
|
39
|
+
demandOption: true,
|
|
40
|
+
describe: 'Output directory for generated code',
|
|
41
|
+
})
|
|
42
|
+
.option('target', {
|
|
43
|
+
alias: 't',
|
|
44
|
+
type: 'string',
|
|
45
|
+
choices: ['angular', 'next', 'flutter'],
|
|
46
|
+
demandOption: true,
|
|
47
|
+
describe: 'Target format for the generated code',
|
|
48
|
+
})
|
|
49
|
+
.option('dateTimeLibrary', {
|
|
50
|
+
alias: 'd',
|
|
51
|
+
type: 'string',
|
|
52
|
+
choices: ['moment', 'date-fns'],
|
|
53
|
+
default: 'date-fns',
|
|
54
|
+
describe: 'Date library to use for date handling',
|
|
55
|
+
})
|
|
56
|
+
.option('package', {
|
|
57
|
+
alias: 'p',
|
|
58
|
+
type: 'string',
|
|
59
|
+
describe: 'For Dart: package name for Dart project',
|
|
60
|
+
})
|
|
61
|
+
.help()
|
|
62
|
+
.parseSync();
|
|
63
|
+
|
|
64
|
+
const commandLineArgs: CommandLineArgs = {
|
|
65
|
+
swaggerJsonUrl: argv.url,
|
|
66
|
+
outputDirectory: argv.output,
|
|
67
|
+
target: parseTargetGeneration(argv.target),
|
|
68
|
+
dateTimeLibrary: parseDateTimeLibrary(argv.dateTimeLibrary),
|
|
69
|
+
package: argv.package ?? '',
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
const swaggerDownloader = new SwaggerDownloader();
|
|
73
|
+
|
|
74
|
+
swaggerDownloader.download(new URL(commandLineArgs.swaggerJsonUrl))
|
|
75
|
+
.then(swaggerDoc => {
|
|
76
|
+
return new Generator(swaggerDoc, commandLineArgs);
|
|
77
|
+
})
|
|
78
|
+
.then(generator => { generator.generate(); });
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
// require('./index.js')({swaggerDownloader});
|
|
82
|
+
|
|
83
|
+
function parseDateTimeLibrary(value: string): DateTimeLibrary | undefined {
|
|
84
|
+
const values = Object.values(DateTimeLibrary);
|
|
85
|
+
if (values.includes(value as DateTimeLibrary)) {
|
|
86
|
+
return value as DateTimeLibrary;
|
|
87
|
+
}
|
|
88
|
+
return undefined;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
function parseTargetGeneration(value: string): TargetGeneration {
|
|
92
|
+
const values = Object.values(TargetGeneration);
|
|
93
|
+
if (values.includes(value as TargetGeneration)) {
|
|
94
|
+
return value as TargetGeneration;
|
|
95
|
+
}
|
|
96
|
+
throw new Error(`Invalid OutputFormat: ${value}`);
|
|
97
97
|
}
|
package/src/models/api-dto.ts
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import { ParameterDto } from "./parameter-dto.js";
|
|
2
|
-
import { SwaggerMethod } from "./swagger/swagger-method.js";
|
|
3
|
-
import { TypeDto } from "./type-dto.js";
|
|
4
|
-
|
|
5
|
-
export interface ApiDto {
|
|
6
|
-
name: string;
|
|
7
|
-
method: string;
|
|
8
|
-
url: string;
|
|
9
|
-
description?: string;
|
|
10
|
-
parameters: ParameterDto[];
|
|
11
|
-
returnType: TypeDto | undefined;
|
|
12
|
-
haveRequest: boolean;
|
|
13
|
-
isMultiPart: boolean;
|
|
14
|
-
tag: string;
|
|
15
|
-
|
|
16
|
-
swaggerMethodKey: { [key: string]: SwaggerMethod; };
|
|
17
|
-
swaggerMethod: SwaggerMethod;
|
|
1
|
+
import { ParameterDto } from "./parameter-dto.js";
|
|
2
|
+
import { SwaggerMethod } from "./swagger/swagger-method.js";
|
|
3
|
+
import { TypeDto } from "./type-dto.js";
|
|
4
|
+
|
|
5
|
+
export interface ApiDto {
|
|
6
|
+
name: string;
|
|
7
|
+
method: string;
|
|
8
|
+
url: string;
|
|
9
|
+
description?: string;
|
|
10
|
+
parameters: ParameterDto[];
|
|
11
|
+
returnType: TypeDto | undefined;
|
|
12
|
+
haveRequest: boolean;
|
|
13
|
+
isMultiPart: boolean;
|
|
14
|
+
tag: string;
|
|
15
|
+
|
|
16
|
+
swaggerMethodKey: { [key: string]: SwaggerMethod; };
|
|
17
|
+
swaggerMethod: SwaggerMethod;
|
|
18
18
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export interface EnumValueDto {
|
|
2
|
-
name: string;
|
|
3
|
-
value: string;
|
|
1
|
+
export interface EnumValueDto {
|
|
2
|
+
name: string;
|
|
3
|
+
value: string;
|
|
4
4
|
}
|
package/src/models/model-dto.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { EnumValueDto } from "./enum-value-dto.js";
|
|
2
|
-
import { PropertyDto } from "./property-dto.js";
|
|
3
|
-
|
|
4
|
-
export interface ModelDto {
|
|
5
|
-
typeName: string;
|
|
6
|
-
modelType: 'enum' | 'interface' | 'class';
|
|
7
|
-
name: string;
|
|
8
|
-
properties: PropertyDto[];
|
|
9
|
-
enumValues: EnumValueDto[];
|
|
1
|
+
import { EnumValueDto } from "./enum-value-dto.js";
|
|
2
|
+
import { PropertyDto } from "./property-dto.js";
|
|
3
|
+
|
|
4
|
+
export interface ModelDto {
|
|
5
|
+
typeName: string;
|
|
6
|
+
modelType: 'enum' | 'interface' | 'class';
|
|
7
|
+
name: string;
|
|
8
|
+
properties: PropertyDto[];
|
|
9
|
+
enumValues: EnumValueDto[];
|
|
10
10
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { PropertyDto } from "./property-dto.js";
|
|
2
|
-
import { SwaggerParameter } from "./swagger/swagger.js";
|
|
3
|
-
|
|
4
|
-
export interface ParameterDto extends PropertyDto {
|
|
5
|
-
isQuery: boolean;
|
|
6
|
-
isEnum: boolean;
|
|
7
|
-
swaggerParameter?: SwaggerParameter;
|
|
1
|
+
import { PropertyDto } from "./property-dto.js";
|
|
2
|
+
import { SwaggerParameter } from "./swagger/swagger.js";
|
|
3
|
+
|
|
4
|
+
export interface ParameterDto extends PropertyDto {
|
|
5
|
+
isQuery: boolean;
|
|
6
|
+
isEnum: boolean;
|
|
7
|
+
swaggerParameter?: SwaggerParameter;
|
|
8
8
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { TypeDto } from "./type-dto.js";
|
|
2
|
-
|
|
3
|
-
export interface PropertyDto extends TypeDto {
|
|
4
|
-
name: string;
|
|
1
|
+
import { TypeDto } from "./type-dto.js";
|
|
2
|
+
|
|
3
|
+
export interface PropertyDto extends TypeDto {
|
|
4
|
+
name: string;
|
|
5
5
|
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { SwaggerSchema } from "./swagger-schema.js";
|
|
2
|
-
|
|
3
|
-
// export interface SwaggerComponentProperty {
|
|
4
|
-
// type: string;
|
|
5
|
-
// $ref: string;
|
|
6
|
-
// allOf: SwaggerComponentProperty[];
|
|
7
|
-
// format: string;
|
|
8
|
-
// items: SwaggerSchema;
|
|
9
|
-
// properties: { [key: string]: SwaggerComponentProperty; };
|
|
10
|
-
// nullable: boolean;
|
|
11
|
-
// minLength: number;
|
|
1
|
+
import { SwaggerSchema } from "./swagger-schema.js";
|
|
2
|
+
|
|
3
|
+
// export interface SwaggerComponentProperty {
|
|
4
|
+
// type: string;
|
|
5
|
+
// $ref: string;
|
|
6
|
+
// allOf: SwaggerComponentProperty[];
|
|
7
|
+
// format: string;
|
|
8
|
+
// items: SwaggerSchema;
|
|
9
|
+
// properties: { [key: string]: SwaggerComponentProperty; };
|
|
10
|
+
// nullable: boolean;
|
|
11
|
+
// minLength: number;
|
|
12
12
|
// }
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
// import { SwaggerComponentProperty } from "./swagger-component-property.js";
|
|
2
|
-
|
|
3
|
-
import { SwaggerSchema } from "./swagger-schema.js";
|
|
4
|
-
|
|
5
|
-
// export interface SwaggerComponent {
|
|
6
|
-
// type: string;
|
|
7
|
-
// properties: { [key: string]: SwaggerComponentProperty; };
|
|
8
|
-
// additionalProperties: boolean;
|
|
9
|
-
// enum: string[];
|
|
10
|
-
// }
|
|
11
|
-
|
|
12
|
-
export interface SwaggerComponent {
|
|
13
|
-
type: string;
|
|
14
|
-
properties: { [key: string]: SwaggerSchema; };
|
|
15
|
-
additionalProperties: boolean;
|
|
16
|
-
enum: string[];
|
|
17
|
-
required: string[];
|
|
1
|
+
// import { SwaggerComponentProperty } from "./swagger-component-property.js";
|
|
2
|
+
|
|
3
|
+
import { SwaggerSchema } from "./swagger-schema.js";
|
|
4
|
+
|
|
5
|
+
// export interface SwaggerComponent {
|
|
6
|
+
// type: string;
|
|
7
|
+
// properties: { [key: string]: SwaggerComponentProperty; };
|
|
8
|
+
// additionalProperties: boolean;
|
|
9
|
+
// enum: string[];
|
|
10
|
+
// }
|
|
11
|
+
|
|
12
|
+
export interface SwaggerComponent {
|
|
13
|
+
type: string;
|
|
14
|
+
properties: { [key: string]: SwaggerSchema; };
|
|
15
|
+
additionalProperties: boolean;
|
|
16
|
+
enum: string[];
|
|
17
|
+
required: string[];
|
|
18
18
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { SwaggerSchema } from "./swagger-schema.js";
|
|
2
|
-
|
|
3
|
-
export interface SwaggerContent {
|
|
4
|
-
schema: SwaggerSchema;
|
|
1
|
+
import { SwaggerSchema } from "./swagger-schema.js";
|
|
2
|
+
|
|
3
|
+
export interface SwaggerContent {
|
|
4
|
+
schema: SwaggerSchema;
|
|
5
5
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export interface SwaggerInfo {
|
|
2
|
-
title: string;
|
|
3
|
-
version: string;
|
|
1
|
+
export interface SwaggerInfo {
|
|
2
|
+
title: string;
|
|
3
|
+
version: string;
|
|
4
4
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { SwaggerParameter, SwaggerRequestBody, SwaggerResponses } from "./swagger.js";
|
|
2
|
-
|
|
3
|
-
export interface SwaggerMethod {
|
|
4
|
-
tags: string[];
|
|
5
|
-
parameters: SwaggerParameter[];
|
|
6
|
-
requestBody: SwaggerRequestBody;
|
|
7
|
-
responses: { [key: string]: SwaggerResponses; };
|
|
1
|
+
import { SwaggerParameter, SwaggerRequestBody, SwaggerResponses } from "./swagger.js";
|
|
2
|
+
|
|
3
|
+
export interface SwaggerMethod {
|
|
4
|
+
tags: string[];
|
|
5
|
+
parameters: SwaggerParameter[];
|
|
6
|
+
requestBody: SwaggerRequestBody;
|
|
7
|
+
responses: { [key: string]: SwaggerResponses; };
|
|
8
8
|
}
|
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
// import { SwaggerComponentProperty } from "./swagger-component-property.js";
|
|
2
|
-
|
|
3
|
-
// export interface SwaggerSchema {
|
|
4
|
-
// type: string;
|
|
5
|
-
// $ref: string;
|
|
6
|
-
// allOf: SwaggerSchema[];
|
|
7
|
-
// format: string;
|
|
8
|
-
// items: SwaggerSchema;
|
|
9
|
-
// properties: { [key: string]: SwaggerComponentProperty; };
|
|
10
|
-
// }
|
|
11
|
-
|
|
12
|
-
export interface SwaggerSchema {
|
|
13
|
-
type?: string;
|
|
14
|
-
$ref?: string;
|
|
15
|
-
allOf?: SwaggerSchema[];
|
|
16
|
-
format?: string;
|
|
17
|
-
items?: SwaggerSchema;
|
|
18
|
-
properties?: { [key: string]: SwaggerSchema };
|
|
19
|
-
nullable?: boolean;
|
|
20
|
-
minLength?: number;
|
|
1
|
+
// import { SwaggerComponentProperty } from "./swagger-component-property.js";
|
|
2
|
+
|
|
3
|
+
// export interface SwaggerSchema {
|
|
4
|
+
// type: string;
|
|
5
|
+
// $ref: string;
|
|
6
|
+
// allOf: SwaggerSchema[];
|
|
7
|
+
// format: string;
|
|
8
|
+
// items: SwaggerSchema;
|
|
9
|
+
// properties: { [key: string]: SwaggerComponentProperty; };
|
|
10
|
+
// }
|
|
11
|
+
|
|
12
|
+
export interface SwaggerSchema {
|
|
13
|
+
type?: string;
|
|
14
|
+
$ref?: string;
|
|
15
|
+
allOf?: SwaggerSchema[];
|
|
16
|
+
format?: string;
|
|
17
|
+
items?: SwaggerSchema;
|
|
18
|
+
properties?: { [key: string]: SwaggerSchema };
|
|
19
|
+
nullable?: boolean;
|
|
20
|
+
minLength?: number;
|
|
21
21
|
}
|
|
@@ -1,39 +1,39 @@
|
|
|
1
|
-
import { SwaggerComponent } from "./swagger-component.js";
|
|
2
|
-
import { SwaggerContent } from "./swagger-content.js";
|
|
3
|
-
import { SwaggerInfo } from "./swagger-info.js";
|
|
4
|
-
import { SwaggerMethod } from "./swagger-method.js";
|
|
5
|
-
import { SwaggerSchema } from "./swagger-schema.js";
|
|
6
|
-
|
|
7
|
-
export interface Swagger {
|
|
8
|
-
openApi: string;
|
|
9
|
-
info: SwaggerInfo;
|
|
10
|
-
paths: { [key: string]: { [key: string]: SwaggerMethod; }; };
|
|
11
|
-
components: SwaggerComponents;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
export interface SwaggerParameter {
|
|
15
|
-
name: string;
|
|
16
|
-
in: string;
|
|
17
|
-
required: boolean;
|
|
18
|
-
schema: SwaggerSchema;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
export interface SwaggerRequestBody {
|
|
22
|
-
content: { [key: string]: SwaggerContent; };
|
|
23
|
-
encoding : SwaggerEncoding;
|
|
24
|
-
required?: boolean;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
export interface SwaggerResponses {
|
|
28
|
-
description: string;
|
|
29
|
-
content: { [key: string]: SwaggerContent; };
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
export interface SwaggerComponents {
|
|
33
|
-
schemas: { [key: string]: SwaggerComponent; };
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
export interface SwaggerEncoding{
|
|
37
|
-
File: {style: 'form'},
|
|
38
|
-
Id: {style: 'form'},
|
|
1
|
+
import { SwaggerComponent } from "./swagger-component.js";
|
|
2
|
+
import { SwaggerContent } from "./swagger-content.js";
|
|
3
|
+
import { SwaggerInfo } from "./swagger-info.js";
|
|
4
|
+
import { SwaggerMethod } from "./swagger-method.js";
|
|
5
|
+
import { SwaggerSchema } from "./swagger-schema.js";
|
|
6
|
+
|
|
7
|
+
export interface Swagger {
|
|
8
|
+
openApi: string;
|
|
9
|
+
info: SwaggerInfo;
|
|
10
|
+
paths: { [key: string]: { [key: string]: SwaggerMethod; }; };
|
|
11
|
+
components: SwaggerComponents;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export interface SwaggerParameter {
|
|
15
|
+
name: string;
|
|
16
|
+
in: string;
|
|
17
|
+
required: boolean;
|
|
18
|
+
schema: SwaggerSchema;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export interface SwaggerRequestBody {
|
|
22
|
+
content: { [key: string]: SwaggerContent; };
|
|
23
|
+
encoding : SwaggerEncoding;
|
|
24
|
+
required?: boolean;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export interface SwaggerResponses {
|
|
28
|
+
description: string;
|
|
29
|
+
content: { [key: string]: SwaggerContent; };
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export interface SwaggerComponents {
|
|
33
|
+
schemas: { [key: string]: SwaggerComponent; };
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export interface SwaggerEncoding{
|
|
37
|
+
File: {style: 'form'},
|
|
38
|
+
Id: {style: 'form'},
|
|
39
39
|
}
|
package/src/models/type-dto.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export interface TypeDto {
|
|
2
|
-
typeName: string;
|
|
3
|
-
nullable: boolean;
|
|
4
|
-
isNativeType: boolean;
|
|
5
|
-
isTypeReference: boolean;
|
|
6
|
-
isVoid: boolean;
|
|
7
|
-
isArray: boolean;
|
|
1
|
+
export interface TypeDto {
|
|
2
|
+
typeName: string;
|
|
3
|
+
nullable: boolean;
|
|
4
|
+
isNativeType: boolean;
|
|
5
|
+
isTypeReference: boolean;
|
|
6
|
+
isVoid: boolean;
|
|
7
|
+
isArray: boolean;
|
|
8
8
|
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import fetch, { RequestInit } from 'node-fetch';
|
|
2
|
-
import { Swagger } from "./models/swagger/swagger.js";
|
|
3
|
-
|
|
4
|
-
const settings: RequestInit = { method: "Get" };
|
|
5
|
-
|
|
6
|
-
export class SwaggerDownloader {
|
|
7
|
-
async download(swaggerJsonUrl: URL) {
|
|
8
|
-
let response = await fetch(swaggerJsonUrl, settings);
|
|
9
|
-
let json = await response.json();
|
|
10
|
-
return <Swagger>json;
|
|
11
|
-
}
|
|
12
|
-
}
|
|
1
|
+
import fetch, { RequestInit } from 'node-fetch';
|
|
2
|
+
import { Swagger } from "./models/swagger/swagger.js";
|
|
3
|
+
|
|
4
|
+
const settings: RequestInit = { method: "Get" };
|
|
5
|
+
|
|
6
|
+
export class SwaggerDownloader {
|
|
7
|
+
async download(swaggerJsonUrl: URL) {
|
|
8
|
+
let response = await fetch(swaggerJsonUrl, settings);
|
|
9
|
+
let json = await response.json();
|
|
10
|
+
return <Swagger>json;
|
|
11
|
+
}
|
|
12
|
+
}
|
package/tsconfig.json
CHANGED
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
{
|
|
2
|
-
"compilerOptions": {
|
|
3
|
-
"target": "ES2022",
|
|
4
|
-
"module": "ES2022",
|
|
5
|
-
"baseUrl": "./src",
|
|
6
|
-
"moduleResolution": "NodeNext",
|
|
7
|
-
"paths": {
|
|
8
|
-
"@src/*": [
|
|
9
|
-
"*"
|
|
10
|
-
]
|
|
11
|
-
},
|
|
12
|
-
"outDir": "./dist",
|
|
13
|
-
"esModuleInterop": true,
|
|
14
|
-
"forceConsistentCasingInFileNames": true,
|
|
15
|
-
"strict": true,
|
|
16
|
-
"skipLibCheck": true
|
|
17
|
-
},
|
|
18
|
-
"include": [
|
|
19
|
-
"src/**/*.ts"
|
|
20
|
-
],
|
|
21
|
-
"exclude": [
|
|
22
|
-
"node_modules"
|
|
23
|
-
],
|
|
24
|
-
"ts-node": {
|
|
25
|
-
"require": [
|
|
26
|
-
"tsconfig-paths/register"
|
|
27
|
-
]
|
|
28
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"target": "ES2022",
|
|
4
|
+
"module": "ES2022",
|
|
5
|
+
"baseUrl": "./src",
|
|
6
|
+
"moduleResolution": "NodeNext",
|
|
7
|
+
"paths": {
|
|
8
|
+
"@src/*": [
|
|
9
|
+
"*"
|
|
10
|
+
]
|
|
11
|
+
},
|
|
12
|
+
"outDir": "./dist",
|
|
13
|
+
"esModuleInterop": true,
|
|
14
|
+
"forceConsistentCasingInFileNames": true,
|
|
15
|
+
"strict": true,
|
|
16
|
+
"skipLibCheck": true
|
|
17
|
+
},
|
|
18
|
+
"include": [
|
|
19
|
+
"src/**/*.ts"
|
|
20
|
+
],
|
|
21
|
+
"exclude": [
|
|
22
|
+
"node_modules"
|
|
23
|
+
],
|
|
24
|
+
"ts-node": {
|
|
25
|
+
"require": [
|
|
26
|
+
"tsconfig-paths/register"
|
|
27
|
+
]
|
|
28
|
+
}
|
|
29
29
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
package/dist/models/swagger.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|