@nestia/sdk 1.4.15 → 1.4.17
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/lib/INestiaConfig.d.ts +4 -3
- package/lib/analyses/ReflectAnalyzer.js +12 -5
- package/lib/analyses/ReflectAnalyzer.js.map +1 -1
- package/lib/executable/internal/NestiaSdkConfig.js +129 -67
- package/lib/executable/internal/NestiaSdkConfig.js.map +1 -1
- package/lib/generates/SwaggerGenerator.js +187 -11
- package/lib/generates/SwaggerGenerator.js.map +1 -1
- package/lib/generates/internal/E2eFileProgrammer.js +3 -1
- package/lib/generates/internal/E2eFileProgrammer.js.map +1 -1
- package/lib/generates/internal/SdkFunctionProgrammer.js +21 -9
- package/lib/generates/internal/SdkFunctionProgrammer.js.map +1 -1
- package/lib/generates/internal/SdkSimulationProgrammer.js +16 -6
- package/lib/generates/internal/SdkSimulationProgrammer.js.map +1 -1
- package/lib/structures/IController.d.ts +8 -1
- package/lib/structures/{ISwaggerDocument.d.ts → ISwagger.d.ts} +12 -16
- package/lib/structures/{ISwaggerDocument.js → ISwagger.js} +1 -1
- package/lib/structures/ISwagger.js.map +1 -0
- package/lib/structures/ISwaggerInfo.d.ts +71 -0
- package/lib/structures/ISwaggerInfo.js +3 -0
- package/lib/structures/ISwaggerInfo.js.map +1 -0
- package/lib/structures/ISwaggerRoute.d.ts +1 -1
- package/lib/structures/ParamCategory.d.ts +1 -1
- package/package.json +3 -3
- package/src/INestiaConfig.ts +4 -3
- package/src/analyses/ReflectAnalyzer.ts +13 -4
- package/src/generates/SwaggerGenerator.ts +73 -6
- package/src/generates/internal/E2eFileProgrammer.ts +3 -1
- package/src/generates/internal/SdkFunctionProgrammer.ts +34 -20
- package/src/generates/internal/SdkSimulationProgrammer.ts +32 -22
- package/src/structures/IController.ts +8 -0
- package/src/structures/{ISwaggerDocument.ts → ISwagger.ts} +12 -17
- package/src/structures/ISwaggerInfo.ts +80 -0
- package/src/structures/ISwaggerRoute.ts +1 -1
- package/src/structures/ParamCategory.ts +1 -1
- package/lib/structures/ISwaggerDocument.js.map +0 -1
package/lib/INestiaConfig.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type ts from "typescript";
|
|
2
|
-
import type {
|
|
2
|
+
import type { ISwagger } from "./structures/ISwagger";
|
|
3
|
+
import { ISwaggerInfo } from "./structures/ISwaggerInfo";
|
|
3
4
|
import { ISwaggerSecurityScheme } from "./structures/ISwaggerSecurityScheme";
|
|
4
5
|
import type { StripEnums } from "./utils/StripEnums";
|
|
5
6
|
/**
|
|
@@ -156,11 +157,11 @@ export declare namespace INestiaConfig {
|
|
|
156
157
|
*
|
|
157
158
|
* If omitted, `package.json` content would be used instead.
|
|
158
159
|
*/
|
|
159
|
-
info?: Partial<
|
|
160
|
+
info?: Partial<ISwaggerInfo>;
|
|
160
161
|
/**
|
|
161
162
|
* List of server addresses.
|
|
162
163
|
*/
|
|
163
|
-
servers?:
|
|
164
|
+
servers?: ISwagger.IServer[];
|
|
164
165
|
/**
|
|
165
166
|
* Security schemes.
|
|
166
167
|
*
|
|
@@ -214,7 +214,7 @@ var ReflectAnalyzer;
|
|
|
214
214
|
return null;
|
|
215
215
|
else if (param.factory.name === "TypedBody" ||
|
|
216
216
|
param.factory.name === "EncryptedBody" ||
|
|
217
|
-
param.factory.name === "PlainBody")
|
|
217
|
+
param.factory.name === "PlainBody")
|
|
218
218
|
return {
|
|
219
219
|
custom: true,
|
|
220
220
|
category: "body",
|
|
@@ -226,12 +226,19 @@ var ReflectAnalyzer;
|
|
|
226
226
|
? "text/plain"
|
|
227
227
|
: "application/json",
|
|
228
228
|
};
|
|
229
|
-
|
|
230
|
-
else if (param.factory.name === "TypedParam") {
|
|
229
|
+
else if (param.factory.name === "TypedHeaders")
|
|
231
230
|
return {
|
|
232
231
|
custom: true,
|
|
232
|
+
category: "headers",
|
|
233
233
|
name: param.name,
|
|
234
|
+
index: param.index,
|
|
235
|
+
field: param.data,
|
|
236
|
+
};
|
|
237
|
+
else if (param.factory.name === "TypedParam")
|
|
238
|
+
return {
|
|
239
|
+
custom: true,
|
|
234
240
|
category: "param",
|
|
241
|
+
name: param.name,
|
|
235
242
|
index: param.index,
|
|
236
243
|
field: param.data,
|
|
237
244
|
meta: (() => {
|
|
@@ -245,7 +252,6 @@ var ReflectAnalyzer;
|
|
|
245
252
|
return undefined;
|
|
246
253
|
})(),
|
|
247
254
|
};
|
|
248
|
-
}
|
|
249
255
|
else if (param.factory.name === "TypedQuery")
|
|
250
256
|
return {
|
|
251
257
|
custom: true,
|
|
@@ -257,6 +263,7 @@ var ReflectAnalyzer;
|
|
|
257
263
|
else
|
|
258
264
|
return null;
|
|
259
265
|
}
|
|
266
|
+
// node_modules/@nestjs/common/lib/route-paramtypes.enum.ts
|
|
260
267
|
const NEST_PARAMETER_TYPES = [
|
|
261
268
|
undefined,
|
|
262
269
|
undefined,
|
|
@@ -264,7 +271,7 @@ var ReflectAnalyzer;
|
|
|
264
271
|
"body",
|
|
265
272
|
"query",
|
|
266
273
|
"param",
|
|
267
|
-
|
|
274
|
+
"headers",
|
|
268
275
|
undefined,
|
|
269
276
|
undefined,
|
|
270
277
|
undefined,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReflectAnalyzer.js","sourceRoot":"","sources":["../../src/analyses/ReflectAnalyzer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oEAAsD;AACtD,4BAA0B;AAC1B,+CAA2C;AAI3C,kDAA+C;AAC/C,iDAA8C;AAC9C,yDAAsD;AAMtD,IAAiB,eAAe,
|
|
1
|
+
{"version":3,"file":"ReflectAnalyzer.js","sourceRoot":"","sources":["../../src/analyses/ReflectAnalyzer.ts"],"names":[],"mappings":"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"}
|