@nestia/sdk 3.10.0 → 3.11.0-dev.20240813
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/NestiaSdkApplication.d.ts +1 -3
- package/lib/NestiaSdkApplication.js +138 -136
- package/lib/NestiaSdkApplication.js.map +1 -1
- package/lib/analyses/ConfigAnalyzer.d.ts +2 -2
- package/lib/analyses/ConfigAnalyzer.js +39 -80
- package/lib/analyses/ConfigAnalyzer.js.map +1 -1
- package/lib/analyses/ExceptionAnalyzer.d.ts +0 -16
- package/lib/analyses/ExceptionAnalyzer.js +142 -105
- package/lib/analyses/ExceptionAnalyzer.js.map +1 -1
- package/lib/analyses/GenericAnalyzer.d.ts +1 -2
- package/lib/analyses/GenericAnalyzer.js.map +1 -1
- package/lib/analyses/ImportAnalyzer.d.ts +6 -11
- package/lib/analyses/ImportAnalyzer.js +70 -42
- package/lib/analyses/ImportAnalyzer.js.map +1 -1
- package/lib/analyses/ReflectControllerAnalyzer.d.ts +7 -1
- package/lib/analyses/ReflectControllerAnalyzer.js +28 -99
- package/lib/analyses/ReflectControllerAnalyzer.js.map +1 -1
- package/lib/analyses/ReflectHttpOperationAnalyzer.d.ts +6 -2
- package/lib/analyses/ReflectHttpOperationAnalyzer.js +72 -152
- package/lib/analyses/ReflectHttpOperationAnalyzer.js.map +1 -1
- package/lib/analyses/ReflectHttpOperationParameterAnalyzer.d.ts +15 -0
- package/lib/analyses/ReflectHttpOperationParameterAnalyzer.js +215 -0
- package/lib/analyses/ReflectHttpOperationParameterAnalyzer.js.map +1 -0
- package/lib/analyses/ReflectHttpOperationResponseAnalyzer.d.ts +15 -0
- package/lib/analyses/ReflectHttpOperationResponseAnalyzer.js +81 -0
- package/lib/analyses/ReflectHttpOperationResponseAnalyzer.js.map +1 -0
- package/lib/analyses/ReflectMetadataAnalyzer.d.ts +1 -3
- package/lib/analyses/ReflectMetadataAnalyzer.js +0 -4
- package/lib/analyses/ReflectMetadataAnalyzer.js.map +1 -1
- package/lib/analyses/ReflectWebSocketOperationAnalyzer.d.ts +6 -2
- package/lib/analyses/ReflectWebSocketOperationAnalyzer.js +72 -48
- package/lib/analyses/ReflectWebSocketOperationAnalyzer.js.map +1 -1
- package/lib/analyses/TypedHttpRouteAnalyzer.d.ts +15 -0
- package/lib/analyses/TypedHttpRouteAnalyzer.js +111 -0
- package/lib/analyses/TypedHttpRouteAnalyzer.js.map +1 -0
- package/lib/analyses/TypedWebSocketRouteAnalyzer.d.ts +10 -0
- package/lib/analyses/TypedWebSocketRouteAnalyzer.js +9 -0
- package/lib/analyses/TypedWebSocketRouteAnalyzer.js.map +1 -0
- package/lib/decorators/OperationMetadata.d.ts +2 -0
- package/lib/decorators/OperationMetadata.js +10 -0
- package/lib/decorators/OperationMetadata.js.map +1 -0
- package/lib/executable/internal/NestiaConfigLoader.d.ts +1 -1
- package/lib/executable/internal/NestiaConfigLoader.js +34 -3
- package/lib/executable/internal/NestiaConfigLoader.js.map +1 -1
- package/lib/executable/internal/NestiaSdkCommand.js +1 -1
- package/lib/executable/internal/NestiaSdkCommand.js.map +1 -1
- package/lib/generates/CloneGenerator.d.ts +0 -5
- package/lib/generates/CloneGenerator.js +60 -60
- package/lib/generates/CloneGenerator.js.map +1 -1
- package/lib/generates/E2eGenerator.d.ts +2 -3
- package/lib/generates/E2eGenerator.js +9 -8
- package/lib/generates/E2eGenerator.js.map +1 -1
- package/lib/generates/OpenAiGenerator.d.ts +2 -4
- package/lib/generates/OpenAiGenerator.js +13 -3
- package/lib/generates/OpenAiGenerator.js.map +1 -1
- package/lib/generates/SdkGenerator.d.ts +4 -4
- package/lib/generates/SdkGenerator.js +63 -73
- package/lib/generates/SdkGenerator.js.map +1 -1
- package/lib/generates/SwaggerGenerator.d.ts +6 -18
- package/lib/generates/SwaggerGenerator.js +60 -235
- package/lib/generates/SwaggerGenerator.js.map +1 -1
- package/lib/generates/internal/E2eFileProgrammer.js +5 -9
- package/lib/generates/internal/E2eFileProgrammer.js.map +1 -1
- package/lib/generates/internal/SdkAliasCollection.d.ts +6 -4
- package/lib/generates/internal/SdkAliasCollection.js +33 -31
- package/lib/generates/internal/SdkAliasCollection.js.map +1 -1
- package/lib/generates/internal/SdkDistributionComposer.d.ts +4 -1
- package/lib/generates/internal/SdkDistributionComposer.js +6 -6
- package/lib/generates/internal/SdkDistributionComposer.js.map +1 -1
- package/lib/generates/internal/SdkFileProgrammer.d.ts +2 -4
- package/lib/generates/internal/SdkFileProgrammer.js +6 -6
- package/lib/generates/internal/SdkFileProgrammer.js.map +1 -1
- package/lib/generates/internal/SdkHttpCloneProgrammer.d.ts +0 -12
- package/lib/generates/internal/SdkHttpCloneProgrammer.js +142 -97
- package/lib/generates/internal/SdkHttpCloneProgrammer.js.map +1 -1
- package/lib/generates/internal/SdkHttpFunctionProgrammer.d.ts +4 -3
- package/lib/generates/internal/SdkHttpFunctionProgrammer.js +37 -59
- package/lib/generates/internal/SdkHttpFunctionProgrammer.js.map +1 -1
- package/lib/generates/internal/SdkHttpNamespaceProgrammer.d.ts +4 -3
- package/lib/generates/internal/SdkHttpNamespaceProgrammer.js +31 -48
- package/lib/generates/internal/SdkHttpNamespaceProgrammer.js.map +1 -1
- package/lib/generates/internal/SdkHttpRouteProgrammer.js +7 -3
- package/lib/generates/internal/SdkHttpRouteProgrammer.js.map +1 -1
- package/lib/generates/internal/SdkHttpSimulationProgrammer.d.ts +4 -3
- package/lib/generates/internal/SdkHttpSimulationProgrammer.js +7 -13
- package/lib/generates/internal/SdkHttpSimulationProgrammer.js.map +1 -1
- package/lib/generates/internal/SdkWebSocketNamespaceProgrammer.d.ts +1 -2
- package/lib/generates/internal/SdkWebSocketNamespaceProgrammer.js +11 -16
- package/lib/generates/internal/SdkWebSocketNamespaceProgrammer.js.map +1 -1
- package/lib/generates/internal/SdkWebSocketRouteProgrammer.d.ts +1 -2
- package/lib/generates/internal/SdkWebSocketRouteProgrammer.js +7 -10
- package/lib/generates/internal/SdkWebSocketRouteProgrammer.js.map +1 -1
- package/lib/generates/internal/SwaggerDescriptionComposer.d.ts +23 -0
- package/lib/generates/internal/SwaggerDescriptionComposer.js +44 -0
- package/lib/generates/internal/SwaggerDescriptionComposer.js.map +1 -0
- package/lib/generates/internal/SwaggerOperationComposer.d.ts +12 -0
- package/lib/generates/internal/SwaggerOperationComposer.js +68 -0
- package/lib/generates/internal/SwaggerOperationComposer.js.map +1 -0
- package/lib/generates/internal/SwaggerOperationParameterComposer.d.ts +18 -0
- package/lib/generates/internal/SwaggerOperationParameterComposer.js +99 -0
- package/lib/generates/internal/SwaggerOperationParameterComposer.js.map +1 -0
- package/lib/generates/internal/SwaggerOperationResponseComposer.d.ts +9 -0
- package/lib/generates/internal/SwaggerOperationResponseComposer.js +91 -0
- package/lib/generates/internal/SwaggerOperationResponseComposer.js.map +1 -0
- package/lib/structures/INestiaProject.d.ts +5 -5
- package/lib/structures/INestiaSdkInput.d.ts +20 -0
- package/lib/structures/{ISwaggerError.js → INestiaSdkInput.js} +1 -1
- package/lib/structures/INestiaSdkInput.js.map +1 -0
- package/lib/structures/IReflectApplication.d.ts +6 -0
- package/lib/structures/IReflectApplication.js +3 -0
- package/lib/structures/IReflectApplication.js.map +1 -0
- package/lib/structures/IReflectController.d.ts +3 -5
- package/lib/structures/IReflectHttpOperation.d.ts +13 -65
- package/lib/structures/IReflectHttpOperationException.d.ts +14 -0
- package/lib/structures/IReflectHttpOperationException.js +3 -0
- package/lib/structures/IReflectHttpOperationException.js.map +1 -0
- package/lib/structures/IReflectHttpOperationParameter.d.ts +35 -0
- package/lib/structures/IReflectHttpOperationParameter.js +3 -0
- package/lib/structures/IReflectHttpOperationParameter.js.map +1 -0
- package/lib/structures/IReflectHttpOperationSuccess.d.ts +15 -0
- package/lib/structures/IReflectHttpOperationSuccess.js +3 -0
- package/lib/structures/IReflectHttpOperationSuccess.js.map +1 -0
- package/lib/structures/IReflectOperationError.d.ts +16 -0
- package/lib/structures/IReflectOperationError.js +23 -0
- package/lib/structures/IReflectOperationError.js.map +1 -0
- package/lib/structures/IReflectType.d.ts +4 -0
- package/lib/structures/{IErrorReport.js → IReflectType.js} +1 -1
- package/lib/structures/IReflectType.js.map +1 -0
- package/lib/structures/IReflectTypeImport.d.ts +4 -0
- package/lib/structures/{ISwaggerLazySchema.js → IReflectTypeImport.js} +1 -1
- package/lib/structures/IReflectTypeImport.js.map +1 -0
- package/lib/structures/IReflectWebSocketOperation.d.ts +8 -9
- package/lib/structures/IReflectWebSocketOperationParameter.d.ts +23 -0
- package/lib/structures/IReflectWebSocketOperationParameter.js +3 -0
- package/lib/structures/IReflectWebSocketOperationParameter.js.map +1 -0
- package/lib/structures/ITypedApplication.d.ts +7 -0
- package/lib/structures/{INormalizedInput.js → ITypedApplication.js} +1 -1
- package/lib/structures/ITypedApplication.js.map +1 -0
- package/lib/structures/ITypedHttpRoute.d.ts +14 -42
- package/lib/structures/ITypedHttpRouteException.d.ts +10 -0
- package/lib/structures/ITypedHttpRouteException.js +3 -0
- package/lib/structures/ITypedHttpRouteException.js.map +1 -0
- package/lib/structures/ITypedHttpRouteParameter.d.ts +31 -0
- package/lib/structures/ITypedHttpRouteParameter.js +3 -0
- package/lib/structures/ITypedHttpRouteParameter.js.map +1 -0
- package/lib/structures/ITypedHttpRouteSuccess.d.ts +19 -0
- package/lib/structures/{ISwaggerLazyProperty.js → ITypedHttpRouteSuccess.js} +1 -1
- package/lib/structures/ITypedHttpRouteSuccess.js.map +1 -0
- package/lib/structures/ITypedWebSocketRoute.d.ts +8 -44
- package/lib/structures/ITypedWebSocketRouteParameter.d.ts +2 -0
- package/lib/structures/ITypedWebSocketRouteParameter.js +3 -0
- package/lib/structures/ITypedWebSocketRouteParameter.js.map +1 -0
- package/lib/transform.d.ts +3 -0
- package/lib/transform.js +8 -0
- package/lib/transform.js.map +1 -0
- package/lib/transformers/IOperationMetadata.d.ts +36 -0
- package/lib/transformers/IOperationMetadata.js +3 -0
- package/lib/transformers/IOperationMetadata.js.map +1 -0
- package/lib/transformers/ISdkTransformerContext.d.ts +7 -0
- package/lib/transformers/ISdkTransformerContext.js +3 -0
- package/lib/transformers/ISdkTransformerContext.js.map +1 -0
- package/lib/transformers/SdkMetadataProgrammer.d.ts +11 -0
- package/lib/transformers/SdkMetadataProgrammer.js +159 -0
- package/lib/transformers/SdkMetadataProgrammer.js.map +1 -0
- package/lib/transformers/SdkTransformer.d.ts +4 -0
- package/lib/transformers/SdkTransformer.js +88 -0
- package/lib/transformers/SdkTransformer.js.map +1 -0
- package/lib/transformers/TextPlainValidator.d.ts +4 -0
- package/lib/transformers/TextPlainValidator.js +19 -0
- package/lib/transformers/TextPlainValidator.js.map +1 -0
- package/lib/utils/StringUtil.d.ts +1 -0
- package/lib/utils/StringUtil.js +1 -0
- package/lib/utils/StringUtil.js.map +1 -1
- package/package.json +8 -8
- package/src/NestiaSdkApplication.ts +173 -160
- package/src/analyses/ConfigAnalyzer.ts +50 -98
- package/src/analyses/ExceptionAnalyzer.ts +142 -142
- package/src/analyses/GenericAnalyzer.ts +3 -5
- package/src/analyses/ImportAnalyzer.ts +130 -115
- package/src/analyses/ReflectControllerAnalyzer.ts +63 -115
- package/src/analyses/ReflectHttpOperationAnalyzer.ts +142 -278
- package/src/analyses/ReflectHttpOperationParameterAnalyzer.ts +319 -0
- package/src/analyses/ReflectHttpOperationResponseAnalyzer.ts +117 -0
- package/src/analyses/ReflectMetadataAnalyzer.ts +1 -18
- package/src/analyses/ReflectWebSocketOperationAnalyzer.ts +143 -78
- package/src/analyses/TypedHttpRouteAnalyzer.ts +178 -0
- package/src/analyses/TypedWebSocketRouteAnalyzer.ts +18 -0
- package/src/decorators/OperationMetadata.ts +15 -0
- package/src/executable/internal/NestiaConfigLoader.ts +18 -3
- package/src/executable/internal/NestiaSdkCommand.ts +1 -4
- package/src/generates/CloneGenerator.ts +60 -59
- package/src/generates/E2eGenerator.ts +20 -21
- package/src/generates/OpenAiGenerator.ts +44 -45
- package/src/generates/SdkGenerator.ts +97 -125
- package/src/generates/SwaggerGenerator.ts +114 -416
- package/src/generates/internal/E2eFileProgrammer.ts +5 -14
- package/src/generates/internal/SdkAliasCollection.ts +33 -41
- package/src/generates/internal/SdkDistributionComposer.ts +9 -6
- package/src/generates/internal/SdkFileProgrammer.ts +11 -14
- package/src/generates/internal/SdkHttpCloneProgrammer.ts +142 -142
- package/src/generates/internal/SdkHttpFunctionProgrammer.ts +20 -47
- package/src/generates/internal/SdkHttpNamespaceProgrammer.ts +245 -275
- package/src/generates/internal/SdkHttpRouteProgrammer.ts +7 -7
- package/src/generates/internal/SdkHttpSimulationProgrammer.ts +11 -23
- package/src/generates/internal/SdkWebSocketNamespaceProgrammer.ts +197 -233
- package/src/generates/internal/SdkWebSocketRouteProgrammer.ts +5 -15
- package/src/generates/internal/{SwaggerDescriptionGenerator.ts → SwaggerDescriptionComposer.ts} +25 -5
- package/src/generates/internal/SwaggerOperationComposer.ts +90 -0
- package/src/generates/internal/SwaggerOperationParameterComposer.ts +173 -0
- package/src/generates/internal/SwaggerOperationResponseComposer.ts +110 -0
- package/src/structures/INestiaProject.ts +5 -5
- package/src/structures/INestiaSdkInput.ts +25 -0
- package/src/structures/IReflectApplication.ts +8 -0
- package/src/structures/IReflectController.ts +3 -5
- package/src/structures/IReflectHttpOperation.ts +14 -76
- package/src/structures/IReflectHttpOperationException.ts +19 -0
- package/src/structures/IReflectHttpOperationParameter.ts +81 -0
- package/src/structures/IReflectHttpOperationSuccess.ts +22 -0
- package/src/structures/IReflectOperationError.ts +26 -0
- package/src/structures/IReflectType.ts +4 -0
- package/src/structures/IReflectTypeImport.ts +4 -0
- package/src/structures/IReflectWebSocketOperation.ts +9 -9
- package/src/structures/IReflectWebSocketOperationParameter.ts +38 -0
- package/src/structures/ITypedApplication.ts +8 -0
- package/src/structures/ITypedHttpRoute.ts +15 -45
- package/src/structures/ITypedHttpRouteException.ts +15 -0
- package/src/structures/ITypedHttpRouteParameter.ts +41 -0
- package/src/structures/ITypedHttpRouteSuccess.ts +22 -0
- package/src/structures/ITypedWebSocketRoute.ts +8 -56
- package/src/structures/ITypedWebSocketRouteParameter.ts +3 -0
- package/src/transform.ts +9 -0
- package/src/transformers/IOperationMetadata.ts +38 -0
- package/src/transformers/ISdkTransformerContext.ts +8 -0
- package/src/transformers/SdkMetadataProgrammer.ts +227 -0
- package/src/transformers/SdkTransformer.ts +168 -0
- package/src/transformers/TextPlainValidator.ts +17 -0
- package/src/utils/StringUtil.ts +3 -0
- package/lib/analyses/TypedControllerAnalyzer.d.ts +0 -8
- package/lib/analyses/TypedControllerAnalyzer.js +0 -77
- package/lib/analyses/TypedControllerAnalyzer.js.map +0 -1
- package/lib/analyses/TypedHttpOperationAnalyzer.d.ts +0 -15
- package/lib/analyses/TypedHttpOperationAnalyzer.js +0 -263
- package/lib/analyses/TypedHttpOperationAnalyzer.js.map +0 -1
- package/lib/analyses/TypedWebSocketOperationAnalyzer.d.ts +0 -15
- package/lib/analyses/TypedWebSocketOperationAnalyzer.js +0 -226
- package/lib/analyses/TypedWebSocketOperationAnalyzer.js.map +0 -1
- package/lib/generates/internal/SwaggerDescriptionGenerator.d.ts +0 -14
- package/lib/generates/internal/SwaggerDescriptionGenerator.js +0 -33
- package/lib/generates/internal/SwaggerDescriptionGenerator.js.map +0 -1
- package/lib/generates/internal/SwaggerSchemaGenerator.d.ts +0 -21
- package/lib/generates/internal/SwaggerSchemaGenerator.js +0 -289
- package/lib/generates/internal/SwaggerSchemaGenerator.js.map +0 -1
- package/lib/generates/internal/SwaggerSchemaValidator.d.ts +0 -7
- package/lib/generates/internal/SwaggerSchemaValidator.js +0 -191
- package/lib/generates/internal/SwaggerSchemaValidator.js.map +0 -1
- package/lib/structures/IErrorReport.d.ts +0 -6
- package/lib/structures/IErrorReport.js.map +0 -1
- package/lib/structures/INormalizedInput.d.ts +0 -19
- package/lib/structures/INormalizedInput.js.map +0 -1
- package/lib/structures/ISwaggerError.d.ts +0 -6
- package/lib/structures/ISwaggerError.js.map +0 -1
- package/lib/structures/ISwaggerLazyProperty.d.ts +0 -6
- package/lib/structures/ISwaggerLazyProperty.js.map +0 -1
- package/lib/structures/ISwaggerLazySchema.d.ts +0 -6
- package/lib/structures/ISwaggerLazySchema.js.map +0 -1
- package/lib/structures/ITypeTuple.d.ts +0 -5
- package/lib/structures/ITypeTuple.js +0 -3
- package/lib/structures/ITypeTuple.js.map +0 -1
- package/src/analyses/TypedControllerAnalyzer.ts +0 -92
- package/src/analyses/TypedHttpOperationAnalyzer.ts +0 -365
- package/src/analyses/TypedWebSocketOperationAnalyzer.ts +0 -375
- package/src/generates/internal/SwaggerSchemaGenerator.ts +0 -473
- package/src/generates/internal/SwaggerSchemaValidator.ts +0 -206
- package/src/structures/IErrorReport.ts +0 -6
- package/src/structures/INormalizedInput.ts +0 -20
- package/src/structures/ISwaggerError.ts +0 -8
- package/src/structures/ISwaggerLazyProperty.ts +0 -7
- package/src/structures/ISwaggerLazySchema.ts +0 -7
- package/src/structures/ITypeTuple.ts +0 -6
|
@@ -15,57 +15,25 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
15
15
|
exports.SdkGenerator = void 0;
|
|
16
16
|
const fs_1 = __importDefault(require("fs"));
|
|
17
17
|
const path_1 = __importDefault(require("path"));
|
|
18
|
-
|
|
19
|
-
const MetadataCollection_1 = require("typia/lib/factories/MetadataCollection");
|
|
20
|
-
const CloneGenerator_1 = require("./CloneGenerator");
|
|
21
|
-
const SwaggerGenerator_1 = require("./SwaggerGenerator");
|
|
18
|
+
// import { CloneGenerator } from "./CloneGenerator";
|
|
22
19
|
const SdkDistributionComposer_1 = require("./internal/SdkDistributionComposer");
|
|
23
20
|
const SdkFileProgrammer_1 = require("./internal/SdkFileProgrammer");
|
|
24
21
|
var SdkGenerator;
|
|
25
22
|
(function (SdkGenerator) {
|
|
26
|
-
SdkGenerator.generate = (
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
// VALIDATE THROUGH SWAGGER GENERATOR
|
|
30
|
-
const errors = [];
|
|
31
|
-
const validate = SwaggerGenerator_1.SwaggerGenerator.generate_route({
|
|
32
|
-
config: { output: "" },
|
|
33
|
-
checker: project.checker,
|
|
34
|
-
collection: new MetadataCollection_1.MetadataCollection({
|
|
35
|
-
replace: MetadataCollection_1.MetadataCollection.replace,
|
|
36
|
-
}),
|
|
37
|
-
lazyProperties: [],
|
|
38
|
-
lazySchemas: [],
|
|
39
|
-
errors,
|
|
40
|
-
swagger: yield SwaggerGenerator_1.SwaggerGenerator.initialize((_a = project.config.swagger) !== null && _a !== void 0 ? _a : { output: "" }),
|
|
41
|
-
});
|
|
42
|
-
for (const r of routes)
|
|
43
|
-
if (r.protocol === "http") {
|
|
44
|
-
validate(r);
|
|
45
|
-
if (project.config.clone !== true)
|
|
46
|
-
validateImplicity(project)(r);
|
|
47
|
-
}
|
|
48
|
-
if (errors.length) {
|
|
49
|
-
for (const e of errors)
|
|
50
|
-
console.error(`${path_2.default.relative(process.cwd(), e.route.location)}:${e.route.controller.name}.${e.route.name}:${e.from} - error TS(@nestia/sdk): invalid type detected.\n\n` +
|
|
51
|
-
e.messages.map((m) => ` - ${m}`).join("\n"), "\n\n");
|
|
52
|
-
throw new TypeError("Invalid type detected");
|
|
53
|
-
}
|
|
54
|
-
else if (project.errors.length) {
|
|
55
|
-
for (const e of project.errors)
|
|
56
|
-
console.error(`${path_2.default.relative(process.cwd(), e.file)}:${e.controller}.${e.function}: error TS(@nestia/sdk): ${e.message}`);
|
|
57
|
-
throw new TypeError("Invalid type detected");
|
|
58
|
-
}
|
|
23
|
+
SdkGenerator.generate = (app) => __awaiter(this, void 0, void 0, function* () {
|
|
24
|
+
if (app.project.config.output === undefined)
|
|
25
|
+
throw new Error("Output directory is not defined.");
|
|
59
26
|
// PREPARE NEW DIRECTORIES
|
|
27
|
+
console.log("Generating SDK Library");
|
|
60
28
|
try {
|
|
61
|
-
yield fs_1.default.promises.mkdir(project.config.output);
|
|
29
|
+
yield fs_1.default.promises.mkdir(app.project.config.output);
|
|
62
30
|
}
|
|
63
|
-
catch (
|
|
31
|
+
catch (_a) { }
|
|
64
32
|
// BUNDLING
|
|
65
33
|
const bundle = yield fs_1.default.promises.readdir(SdkGenerator.BUNDLE_PATH);
|
|
66
34
|
for (const file of bundle) {
|
|
67
35
|
const current = `${SdkGenerator.BUNDLE_PATH}/${file}`;
|
|
68
|
-
const target = `${project.config.output}/${file}`;
|
|
36
|
+
const target = `${app.project.config.output}/${file}`;
|
|
69
37
|
const stats = yield fs_1.default.promises.stat(current);
|
|
70
38
|
if (stats.isFile() === true) {
|
|
71
39
|
const content = yield fs_1.default.promises.readFile(current, "utf8");
|
|
@@ -81,47 +49,69 @@ var SdkGenerator;
|
|
|
81
49
|
}
|
|
82
50
|
}
|
|
83
51
|
}
|
|
84
|
-
// STRUCTURES
|
|
85
|
-
if (project.config.clone)
|
|
86
|
-
yield CloneGenerator_1.CloneGenerator.write(project)(routes.filter((r) => r.protocol === "http"));
|
|
52
|
+
// // STRUCTURES
|
|
53
|
+
// if (app.project.config.clone === true) await CloneGenerator.write(app);
|
|
87
54
|
// FUNCTIONAL
|
|
88
|
-
yield SdkFileProgrammer_1.SdkFileProgrammer.generate(
|
|
55
|
+
yield SdkFileProgrammer_1.SdkFileProgrammer.generate(app);
|
|
89
56
|
// DISTRIBUTION
|
|
90
|
-
if (project.config.distribute !== undefined)
|
|
91
|
-
yield SdkDistributionComposer_1.SdkDistributionComposer.compose(
|
|
57
|
+
if (app.project.config.distribute !== undefined)
|
|
58
|
+
yield SdkDistributionComposer_1.SdkDistributionComposer.compose({
|
|
59
|
+
config: app.project.config,
|
|
60
|
+
websocket: app.routes.some((r) => r.protocol === "websocket"),
|
|
61
|
+
});
|
|
92
62
|
});
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
63
|
+
SdkGenerator.validate = (app) => {
|
|
64
|
+
const errors = [];
|
|
65
|
+
if (app.project.config.clone === true)
|
|
66
|
+
return errors;
|
|
67
|
+
for (const route of app.routes)
|
|
68
|
+
if (route.protocol === "http")
|
|
69
|
+
validateImplicity({
|
|
70
|
+
config: app.project.config,
|
|
71
|
+
errors,
|
|
72
|
+
route,
|
|
73
|
+
});
|
|
74
|
+
return errors;
|
|
75
|
+
};
|
|
76
|
+
const validateImplicity = (props) => {
|
|
77
|
+
for (const p of props.route.parameters) {
|
|
78
|
+
if (isImplicitType(p.type))
|
|
79
|
+
props.errors.push({
|
|
80
|
+
file: props.route.controller.file,
|
|
81
|
+
class: props.route.controller.class.name,
|
|
82
|
+
function: props.route.name,
|
|
83
|
+
from: `parameter ${JSON.stringify(p.name)}`,
|
|
84
|
+
contents: [`implicit (unnamed) parameter type.`],
|
|
101
85
|
});
|
|
102
86
|
}
|
|
103
|
-
if (
|
|
104
|
-
for (const [key, value] of Object.entries(route.exceptions))
|
|
105
|
-
if (isImplicitType(value.
|
|
106
|
-
|
|
107
|
-
file: route.
|
|
108
|
-
|
|
109
|
-
function: route.name,
|
|
110
|
-
|
|
87
|
+
if (props.config.propagate === true)
|
|
88
|
+
for (const [key, value] of Object.entries(props.route.exceptions))
|
|
89
|
+
if (isImplicitType(value.type))
|
|
90
|
+
props.errors.push({
|
|
91
|
+
file: props.route.controller.file,
|
|
92
|
+
class: props.route.controller.class.name,
|
|
93
|
+
function: props.route.name,
|
|
94
|
+
from: `exception ${JSON.stringify(key)}`,
|
|
95
|
+
contents: [`implicit (unnamed) exception type.`],
|
|
111
96
|
});
|
|
112
|
-
if (isImplicitType(route.
|
|
113
|
-
|
|
114
|
-
file: route.
|
|
115
|
-
|
|
116
|
-
function: route.name,
|
|
117
|
-
|
|
97
|
+
if (isImplicitType(props.route.success.type))
|
|
98
|
+
props.errors.push({
|
|
99
|
+
file: props.route.controller.file,
|
|
100
|
+
class: props.route.controller.class.name,
|
|
101
|
+
function: props.route.name,
|
|
102
|
+
from: "success",
|
|
103
|
+
contents: [`implicit (unnamed) return type.`],
|
|
118
104
|
});
|
|
119
105
|
};
|
|
120
|
-
const isImplicitType = (
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
106
|
+
const isImplicitType = (type) => {
|
|
107
|
+
var _a;
|
|
108
|
+
return type.name === "__type" ||
|
|
109
|
+
type.name === "__object" ||
|
|
110
|
+
type.name.startsWith("__type.") ||
|
|
111
|
+
type.name.startsWith("__object.") ||
|
|
112
|
+
type.name.includes("readonly [") ||
|
|
113
|
+
(!!((_a = type.typeArguments) === null || _a === void 0 ? void 0 : _a.length) && type.typeArguments.some(isImplicitType));
|
|
114
|
+
};
|
|
125
115
|
SdkGenerator.BUNDLE_PATH = path_1.default.join(__dirname, "..", "..", "assets", "bundle", "api");
|
|
126
116
|
})(SdkGenerator || (exports.SdkGenerator = SdkGenerator = {}));
|
|
127
117
|
const BUNDLE_CHANGES = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SdkGenerator.js","sourceRoot":"","sources":["../../src/generates/SdkGenerator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,4CAAoB;AACpB,gDAA4B;
|
|
1
|
+
{"version":3,"file":"SdkGenerator.js","sourceRoot":"","sources":["../../src/generates/SdkGenerator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,25 +1,13 @@
|
|
|
1
1
|
import { OpenApi } from "@samchon/openapi";
|
|
2
|
-
import ts from "typescript";
|
|
3
|
-
import { MetadataCollection } from "typia/lib/factories/MetadataCollection";
|
|
4
2
|
import { INestiaConfig } from "../INestiaConfig";
|
|
5
|
-
import {
|
|
6
|
-
import { ISwaggerError } from "../structures/ISwaggerError";
|
|
7
|
-
import { ISwaggerLazyProperty } from "../structures/ISwaggerLazyProperty";
|
|
8
|
-
import { ISwaggerLazySchema } from "../structures/ISwaggerLazySchema";
|
|
3
|
+
import { ITypedApplication } from "../structures/ITypedApplication";
|
|
9
4
|
import { ITypedHttpRoute } from "../structures/ITypedHttpRoute";
|
|
10
|
-
import { ITypedWebSocketRoute } from "../structures/ITypedWebSocketRoute";
|
|
11
5
|
export declare namespace SwaggerGenerator {
|
|
12
|
-
|
|
6
|
+
const generate: (app: ITypedApplication) => Promise<void>;
|
|
7
|
+
const compose: (props: {
|
|
13
8
|
config: INestiaConfig.ISwaggerConfig;
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
lazyProperties: Array<ISwaggerLazyProperty>;
|
|
18
|
-
errors: ISwaggerError[];
|
|
19
|
-
swagger: OpenApi.IDocument;
|
|
20
|
-
}
|
|
21
|
-
const generate: (project: INestiaProject) => (routeList: Array<ITypedHttpRoute | ITypedWebSocketRoute>) => Promise<void>;
|
|
22
|
-
const compose: (project: INestiaProject) => (routeList: Array<ITypedHttpRoute | ITypedWebSocketRoute>) => Promise<OpenApi.IDocument>;
|
|
9
|
+
routes: ITypedHttpRoute[];
|
|
10
|
+
document: OpenApi.IDocument;
|
|
11
|
+
}) => OpenApi.IDocument;
|
|
23
12
|
const initialize: (config: INestiaConfig.ISwaggerConfig) => Promise<OpenApi.IDocument>;
|
|
24
|
-
const generate_route: (props: IProps) => (route: ITypedHttpRoute) => OpenApi.IOperation;
|
|
25
13
|
}
|
|
@@ -18,21 +18,17 @@ const fs_1 = __importDefault(require("fs"));
|
|
|
18
18
|
const path_1 = __importDefault(require("path"));
|
|
19
19
|
const tstl_1 = require("tstl");
|
|
20
20
|
const typia_1 = __importDefault(require("typia"));
|
|
21
|
-
const MetadataCollection_1 = require("typia/lib/factories/MetadataCollection");
|
|
22
21
|
const JsonApplicationProgrammer_1 = require("typia/lib/programmers/json/JsonApplicationProgrammer");
|
|
23
22
|
const FileRetriever_1 = require("../utils/FileRetriever");
|
|
24
|
-
const
|
|
25
|
-
const SwaggerDescriptionGenerator_1 = require("./internal/SwaggerDescriptionGenerator");
|
|
26
|
-
const SwaggerSchemaGenerator_1 = require("./internal/SwaggerSchemaGenerator");
|
|
23
|
+
const SwaggerOperationComposer_1 = require("./internal/SwaggerOperationComposer");
|
|
27
24
|
var SwaggerGenerator;
|
|
28
25
|
(function (SwaggerGenerator) {
|
|
29
|
-
SwaggerGenerator.generate = (
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
const
|
|
34
|
-
|
|
35
|
-
// PREPARE ASSETS
|
|
26
|
+
SwaggerGenerator.generate = (app) => __awaiter(this, void 0, void 0, function* () {
|
|
27
|
+
// GET CONFIGURATION
|
|
28
|
+
if (app.project.config.swagger === undefined)
|
|
29
|
+
throw new Error("Swagger configuration is not defined.");
|
|
30
|
+
const config = app.project.config.swagger;
|
|
31
|
+
// TARGET LOCATION
|
|
36
32
|
const parsed = path_1.default.parse(config.output);
|
|
37
33
|
const directory = path_1.default.dirname(parsed.dir);
|
|
38
34
|
if (fs_1.default.existsSync(directory) === false)
|
|
@@ -42,166 +38,49 @@ var SwaggerGenerator;
|
|
|
42
38
|
catch (_a) { }
|
|
43
39
|
if (fs_1.default.existsSync(directory) === false)
|
|
44
40
|
throw new Error(`Error on NestiaApplication.swagger(): failed to create output directory: ${directory}`);
|
|
45
|
-
// COMPOSE SWAGGER DOCUMENT
|
|
46
41
|
const location = !!parsed.ext
|
|
47
42
|
? path_1.default.resolve(config.output)
|
|
48
43
|
: path_1.default.join(path_1.default.resolve(config.output), "swagger.json");
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
44
|
+
// COMPOSE SWAGGER DOCUMENT
|
|
45
|
+
const document = SwaggerGenerator.compose({
|
|
46
|
+
config,
|
|
47
|
+
routes: app.routes.filter((route) => route.protocol === "http"),
|
|
48
|
+
document: yield SwaggerGenerator.initialize(config),
|
|
49
|
+
});
|
|
50
|
+
const specified = config.openapi === "2.0"
|
|
51
|
+
? openapi_1.OpenApi.downgrade(document, config.openapi)
|
|
53
52
|
: config.openapi === "3.0"
|
|
54
|
-
? openapi_1.OpenApi.downgrade(
|
|
55
|
-
:
|
|
53
|
+
? openapi_1.OpenApi.downgrade(document, config.openapi)
|
|
54
|
+
: document;
|
|
56
55
|
yield fs_1.default.promises.writeFile(location, !config.beautify
|
|
57
|
-
? JSON.stringify(
|
|
58
|
-
: JSON.stringify(
|
|
59
|
-
});
|
|
60
|
-
SwaggerGenerator.compose = (project) => (routeList) => __awaiter(this, void 0, void 0, function* () {
|
|
61
|
-
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
62
|
-
// VALIDATE SECURITY
|
|
63
|
-
const config = project.config.swagger;
|
|
64
|
-
const httpRoutes = routeList.filter((route) => route.protocol === "http");
|
|
65
|
-
validate_security(config)(httpRoutes);
|
|
66
|
-
const collection = new MetadataCollection_1.MetadataCollection({
|
|
67
|
-
replace: MetadataCollection_1.MetadataCollection.replace,
|
|
68
|
-
});
|
|
69
|
-
// CONSTRUCT SWAGGER DOCUMENTS
|
|
70
|
-
const errors = [];
|
|
71
|
-
const lazySchemas = [];
|
|
72
|
-
const lazyProperties = [];
|
|
73
|
-
const swagger = yield SwaggerGenerator.initialize(config);
|
|
74
|
-
const pathDict = new Map();
|
|
75
|
-
for (const route of httpRoutes) {
|
|
76
|
-
if (route.jsDocTags.find((tag) => tag.name === "internal"))
|
|
77
|
-
continue;
|
|
78
|
-
const path = MapUtil_1.MapUtil.take(pathDict, get_path(route.path, route.parameters), () => ({}));
|
|
79
|
-
path[route.method.toLowerCase()] = SwaggerGenerator.generate_route({
|
|
80
|
-
config,
|
|
81
|
-
checker: project.checker,
|
|
82
|
-
collection,
|
|
83
|
-
lazySchemas,
|
|
84
|
-
lazyProperties,
|
|
85
|
-
errors,
|
|
86
|
-
swagger,
|
|
87
|
-
})(route);
|
|
88
|
-
}
|
|
89
|
-
swagger.paths = {};
|
|
90
|
-
for (const [path, routes] of pathDict)
|
|
91
|
-
swagger.paths[path] = routes;
|
|
92
|
-
// FILL JSON-SCHEMAS
|
|
93
|
-
const application = JsonApplicationProgrammer_1.JsonApplicationProgrammer.write("3.1")(lazySchemas.map(({ metadata }) => metadata));
|
|
94
|
-
swagger.components = Object.assign(Object.assign({}, ((_a = swagger.components) !== null && _a !== void 0 ? _a : {})), ((_b = application.components) !== null && _b !== void 0 ? _b : {}));
|
|
95
|
-
lazySchemas.forEach(({ schema }, index) => {
|
|
96
|
-
Object.assign(schema, application.schemas[index]);
|
|
97
|
-
});
|
|
98
|
-
for (const p of lazyProperties)
|
|
99
|
-
Object.assign(p.schema, (_f = (_e = (_d = (_c = application.components.schemas) === null || _c === void 0 ? void 0 : _c[p.object]) === null || _d === void 0 ? void 0 : _d.properties) === null || _e === void 0 ? void 0 : _e[p.property]) !== null && _f !== void 0 ? _f : {});
|
|
100
|
-
// CONFIGURE SECURITY
|
|
101
|
-
if (config.security)
|
|
102
|
-
fill_security(config.security, swagger);
|
|
103
|
-
// REPORT ERRORS
|
|
104
|
-
if (errors.length) {
|
|
105
|
-
for (const e of errors)
|
|
106
|
-
console.error(`${path_1.default.relative(process.cwd(), e.route.location)}:${e.route.controller.name}.${e.route.name}:${e.from} - error TS(@nestia/sdk): invalid type detected.\n\n` +
|
|
107
|
-
e.messages.map((m) => ` - ${m}`).join("\n"), "\n\n");
|
|
108
|
-
throw new TypeError("Invalid type detected");
|
|
109
|
-
}
|
|
110
|
-
// SWAGGER CUSTOMIZER
|
|
111
|
-
const customizer = {
|
|
112
|
-
at: new tstl_1.Singleton(() => {
|
|
113
|
-
var _a, _b;
|
|
114
|
-
const functor = new Map();
|
|
115
|
-
for (const route of httpRoutes) {
|
|
116
|
-
const method = route.method.toLowerCase();
|
|
117
|
-
const path = get_path(route.path, route.parameters);
|
|
118
|
-
const operation = (_b = (_a = swagger.paths) === null || _a === void 0 ? void 0 : _a[path]) === null || _b === void 0 ? void 0 : _b[method];
|
|
119
|
-
if (operation === undefined)
|
|
120
|
-
continue;
|
|
121
|
-
functor.set(route.function, {
|
|
122
|
-
method,
|
|
123
|
-
path,
|
|
124
|
-
route: operation,
|
|
125
|
-
});
|
|
126
|
-
}
|
|
127
|
-
return functor;
|
|
128
|
-
}),
|
|
129
|
-
get: new tstl_1.Singleton(() => (key) => {
|
|
130
|
-
var _a, _b;
|
|
131
|
-
const method = key.method.toLowerCase();
|
|
132
|
-
const path = "/" +
|
|
133
|
-
key.path
|
|
134
|
-
.split("/")
|
|
135
|
-
.filter((str) => !!str.length)
|
|
136
|
-
.map((str) => str.startsWith(":") ? `{${str.substring(1)}}` : str)
|
|
137
|
-
.join("/");
|
|
138
|
-
return (_b = (_a = swagger.paths) === null || _a === void 0 ? void 0 : _a[path]) === null || _b === void 0 ? void 0 : _b[method];
|
|
139
|
-
}),
|
|
140
|
-
};
|
|
141
|
-
for (const route of httpRoutes) {
|
|
142
|
-
if (false ===
|
|
143
|
-
Reflect.hasMetadata("nestia/SwaggerCustomizer", route.controller.prototype, route.name))
|
|
144
|
-
continue;
|
|
145
|
-
const path = get_path(route.path, route.parameters);
|
|
146
|
-
const method = route.method.toLowerCase();
|
|
147
|
-
const target = (_h = (_g = swagger.paths) === null || _g === void 0 ? void 0 : _g[path]) === null || _h === void 0 ? void 0 : _h[method];
|
|
148
|
-
if (target === undefined)
|
|
149
|
-
continue;
|
|
150
|
-
const closure = Reflect.getMetadata("nestia/SwaggerCustomizer", route.controller.prototype, route.name);
|
|
151
|
-
const array = Array.isArray(closure) ? closure : [closure];
|
|
152
|
-
for (const fn of array)
|
|
153
|
-
fn({
|
|
154
|
-
route: target,
|
|
155
|
-
method,
|
|
156
|
-
path,
|
|
157
|
-
swagger,
|
|
158
|
-
at: (func) => customizer.at.get().get(func),
|
|
159
|
-
get: (accessor) => customizer.get.get()(accessor),
|
|
160
|
-
});
|
|
161
|
-
}
|
|
162
|
-
return swagger;
|
|
56
|
+
? JSON.stringify(specified)
|
|
57
|
+
: JSON.stringify(specified, null, typeof config.beautify === "number" ? config.beautify : 2), "utf8");
|
|
163
58
|
});
|
|
164
|
-
|
|
165
|
-
var _a
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
const
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
if (security.scopes.has(s) === false)
|
|
189
|
-
reporter(`target security scheme "${key}" does not have a specific scope "${s}".`);
|
|
190
|
-
};
|
|
191
|
-
const violations = [];
|
|
192
|
-
for (const route of routeList)
|
|
193
|
-
for (const record of route.security)
|
|
194
|
-
for (const [key, scopes] of Object.entries(record))
|
|
195
|
-
validate((str) => violations.push(` - ${str} (${route.controller.name}.${route.name}() at "${route.location}")`))(key, scopes);
|
|
196
|
-
if (violations.length)
|
|
197
|
-
throw new Error(`Error on NestiaApplication.swagger(): invalid security specification. Check your "nestia.config.ts" file's "swagger.security" property, or each controller methods.\n` +
|
|
198
|
-
`\n` +
|
|
199
|
-
`List of violations:\n` +
|
|
200
|
-
violations.join("\n"));
|
|
59
|
+
SwaggerGenerator.compose = (props) => {
|
|
60
|
+
var _a;
|
|
61
|
+
var _b;
|
|
62
|
+
// GATHER METADATA
|
|
63
|
+
const metadatas = props.routes
|
|
64
|
+
.filter((r) => r.protocol === "http")
|
|
65
|
+
.map((r) => [
|
|
66
|
+
r.success.metadata,
|
|
67
|
+
...r.parameters.map((p) => p.metadata),
|
|
68
|
+
...Object.values(r.exceptions).map((e) => e.metadata),
|
|
69
|
+
])
|
|
70
|
+
.flat()
|
|
71
|
+
.filter((m) => m.size() !== 0);
|
|
72
|
+
// COMPOSE JSON SCHEMAS
|
|
73
|
+
const json = JsonApplicationProgrammer_1.JsonApplicationProgrammer.write("3.1")(metadatas);
|
|
74
|
+
const dict = new WeakMap();
|
|
75
|
+
json.schemas.forEach((schema, i) => dict.set(metadatas[i], schema));
|
|
76
|
+
const schema = (metadata) => dict.get(metadata);
|
|
77
|
+
// COMPOSE DOCUMENT
|
|
78
|
+
const document = props.document;
|
|
79
|
+
(_a = (_b = document.components).schemas) !== null && _a !== void 0 ? _a : (_b.schemas = {});
|
|
80
|
+
Object.assign(document.components.schemas, json.components.schemas);
|
|
81
|
+
document.paths = writePaths(Object.assign(Object.assign({}, props), { schema }));
|
|
82
|
+
return document;
|
|
201
83
|
};
|
|
202
|
-
/* ---------------------------------------------------------
|
|
203
|
-
INITIALIZERS
|
|
204
|
-
--------------------------------------------------------- */
|
|
205
84
|
SwaggerGenerator.initialize = (config) => __awaiter(this, void 0, void 0, function* () {
|
|
206
85
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
|
|
207
86
|
const pack = new tstl_1.Singleton(() => __awaiter(this, void 0, void 0, function* () {
|
|
@@ -293,83 +172,29 @@ var SwaggerGenerator;
|
|
|
293
172
|
paths: {},
|
|
294
173
|
components: {
|
|
295
174
|
schemas: {},
|
|
175
|
+
securitySchemes: config.security,
|
|
296
176
|
},
|
|
297
177
|
tags: (_t = config.tags) !== null && _t !== void 0 ? _t : [],
|
|
298
178
|
"x-samchon-emended": true,
|
|
299
179
|
};
|
|
300
180
|
});
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
var _f, _g;
|
|
310
|
-
// FIND REQUEST BODY
|
|
311
|
-
const body = route.parameters.find((param) => param.category === "body");
|
|
312
|
-
// CONSTRUCT SUMMARY & DESCRIPTION
|
|
313
|
-
const getJsDocTexts = (name) => route.jsDocTags
|
|
314
|
-
.filter((tag) => tag.name === name &&
|
|
315
|
-
tag.text &&
|
|
316
|
-
tag.text.find((elem) => elem.kind === "text" && elem.text.length) !== undefined)
|
|
317
|
-
.map((tag) => tag.text.find((elem) => elem.kind === "text").text);
|
|
318
|
-
const { summary, description } = SwaggerDescriptionGenerator_1.SwaggerDescriptionGenerator.generate({
|
|
319
|
-
description: route.description,
|
|
320
|
-
jsDocTags: route.jsDocTags,
|
|
321
|
-
kind: "summary",
|
|
322
|
-
});
|
|
323
|
-
const deprecated = route.jsDocTags.find((tag) => tag.name === "deprecated");
|
|
324
|
-
// CONSTRUCT TAGS
|
|
325
|
-
const tagSet = new Set([
|
|
326
|
-
...route.swaggerTags,
|
|
327
|
-
...getJsDocTexts("tag").map((tag) => tag.split(" ")[0]),
|
|
328
|
-
]);
|
|
329
|
-
(_a = (_f = props.swagger).tags) !== null && _a !== void 0 ? _a : (_f.tags = []);
|
|
330
|
-
for (const tag of tagSet)
|
|
331
|
-
if (props.swagger.tags.find((elem) => elem.name === tag) === undefined)
|
|
332
|
-
props.swagger.tags.push({ name: tag });
|
|
333
|
-
for (const texts of getJsDocTexts("tag")) {
|
|
334
|
-
const [name, ...description] = texts.split(" ");
|
|
335
|
-
if (description.length)
|
|
336
|
-
(_b = (_g = props.swagger.tags.find((elem) => elem.name === name)).description) !== null && _b !== void 0 ? _b : (_g.description = description.join(" "));
|
|
181
|
+
const writePaths = (props) => {
|
|
182
|
+
var _a;
|
|
183
|
+
const output = {};
|
|
184
|
+
for (const r of props.routes) {
|
|
185
|
+
const path = getPath(r);
|
|
186
|
+
(_a = output[path]) !== null && _a !== void 0 ? _a : (output[path] = {});
|
|
187
|
+
output[path][r.method.toLowerCase()] =
|
|
188
|
+
SwaggerOperationComposer_1.SwaggerOperationComposer.compose(Object.assign(Object.assign({}, props), { route: r }));
|
|
337
189
|
}
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
.map((param) => SwaggerSchemaGenerator_1.SwaggerSchemaGenerator.parameter(props)(route)(param))
|
|
347
|
-
.flat(), requestBody: body
|
|
348
|
-
? SwaggerSchemaGenerator_1.SwaggerSchemaGenerator.body(props)(route)(body)
|
|
349
|
-
: undefined, responses: SwaggerSchemaGenerator_1.SwaggerSchemaGenerator.response(props)(route), summary,
|
|
350
|
-
description, security: route.security.length ? route.security : undefined }, (props.config.additional === true
|
|
351
|
-
? {
|
|
352
|
-
"x-nestia-namespace": [
|
|
353
|
-
...route.path
|
|
354
|
-
.split("/")
|
|
355
|
-
.filter((str) => str.length && str[0] !== ":"),
|
|
356
|
-
route.name,
|
|
357
|
-
].join("."),
|
|
358
|
-
"x-nestia-jsDocTags": route.jsDocTags,
|
|
359
|
-
"x-nestia-method": route.method,
|
|
360
|
-
}
|
|
361
|
-
: {}));
|
|
190
|
+
return output;
|
|
191
|
+
};
|
|
192
|
+
const getPath = (route) => {
|
|
193
|
+
let str = route.path;
|
|
194
|
+
const filtered = route.parameters.filter((param) => param.category === "param");
|
|
195
|
+
for (const param of filtered)
|
|
196
|
+
str = str.replace(`:${param.field}`, `{${param.field}}`);
|
|
197
|
+
return str;
|
|
362
198
|
};
|
|
363
|
-
function fill_security(security, swagger) {
|
|
364
|
-
swagger.components.securitySchemes = {};
|
|
365
|
-
for (const [key, value] of Object.entries(security))
|
|
366
|
-
swagger.components.securitySchemes[key] = emend_security(value);
|
|
367
|
-
}
|
|
368
|
-
function emend_security(input) {
|
|
369
|
-
var _a, _b;
|
|
370
|
-
if (input.type === "apiKey")
|
|
371
|
-
return Object.assign(Object.assign({}, input), { in: (_a = input.in) !== null && _a !== void 0 ? _a : "header", name: (_b = input.name) !== null && _b !== void 0 ? _b : "Authorization" });
|
|
372
|
-
return input;
|
|
373
|
-
}
|
|
374
199
|
})(SwaggerGenerator || (exports.SwaggerGenerator = SwaggerGenerator = {}));
|
|
375
200
|
//# sourceMappingURL=SwaggerGenerator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SwaggerGenerator.js","sourceRoot":"","sources":["../../src/generates/SwaggerGenerator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SwaggerGenerator.js","sourceRoot":"","sources":["../../src/generates/SwaggerGenerator.ts"],"names":[],"mappings":"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"}
|