@buildvision/nest-sdk-generator 2.3.0 → 3.0.0
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/.eslintrc.js +1 -1
- package/.github/workflows/test.yml +35 -0
- package/README.md +402 -239
- package/build/analyzer/classdeps.js +36 -4
- package/build/analyzer/controller.d.ts +2 -14
- package/build/analyzer/controller.js +38 -18
- package/build/analyzer/controllers.d.ts +2 -2
- package/build/analyzer/controllers.js +37 -5
- package/build/analyzer/extractor.d.ts +2 -41
- package/build/analyzer/extractor.js +63 -66
- package/build/analyzer/index.d.ts +2 -6
- package/build/analyzer/index.js +107 -86
- package/build/analyzer/methods.d.ts +2 -30
- package/build/analyzer/methods.js +7 -16
- package/build/analyzer/module.js +36 -4
- package/build/analyzer/params.d.ts +3 -39
- package/build/analyzer/params.js +17 -37
- package/build/analyzer/route.js +8 -9
- package/build/analyzer/sdk.d.ts +146 -0
- package/build/analyzer/sdk.js +120 -0
- package/build/analyzer/typedeps.d.ts +15 -0
- package/build/analyzer/typedeps.js +62 -10
- package/build/bin.js +72 -25
- package/build/config.d.ts +13 -0
- package/build/config.js +36 -3
- package/build/engine/analyze.d.ts +16 -0
- package/build/engine/analyze.js +786 -0
- package/build/engine/ast.d.ts +24 -0
- package/build/engine/ast.js +100 -0
- package/build/engine/file-order.d.ts +17 -0
- package/build/engine/file-order.js +97 -0
- package/build/engine/host.d.ts +63 -0
- package/build/engine/host.js +16 -0
- package/build/engine/index.d.ts +15 -0
- package/build/engine/index.js +93 -0
- package/build/engine/ts-morph-compat-host.d.ts +8 -0
- package/build/engine/ts-morph-compat-host.js +18 -0
- package/build/engine/tsgo-host.d.ts +9 -0
- package/build/engine/tsgo-host.js +136 -0
- package/build/engine/typescript-host.d.ts +26 -0
- package/build/engine/typescript-host.js +142 -0
- package/build/generator/genmodules.d.ts +1 -4
- package/build/generator/genmodules.js +23 -27
- package/build/generator/gentypes.d.ts +1 -1
- package/build/generator/gentypes.js +36 -4
- package/build/generator/index.d.ts +1 -1
- package/build/generator/index.js +91 -69
- package/build/generator/prettier.js +43 -9
- package/build/generator/sdk-interface.d.ts +1 -1
- package/build/generator/sdk-interface.js +5 -5
- package/build/logging.d.ts +3 -0
- package/build/logging.js +17 -10
- package/build/rtk-query-generator/genmodules.d.ts +1 -4
- package/build/rtk-query-generator/genmodules.js +31 -33
- package/build/rtk-query-generator/index.d.ts +1 -1
- package/build/rtk-query-generator/index.js +87 -72
- package/build/rtk-query-generator/prettier.js +43 -9
- package/build/rtk-query-generator/sdk-interface.js +3 -4
- package/build/utils.js +38 -6
- package/package.json +29 -11
- package/src/analyzer/controller.ts +3 -31
- package/src/analyzer/controllers.ts +3 -2
- package/src/analyzer/extractor.ts +17 -86
- package/src/analyzer/index.ts +5 -11
- package/src/analyzer/methods.ts +5 -36
- package/src/analyzer/params.ts +13 -55
- package/src/analyzer/sdk.ts +247 -0
- package/src/analyzer/typedeps.ts +22 -4
- package/src/bin.ts +31 -6
- package/src/config.ts +15 -0
- package/src/engine/analyze.ts +1110 -0
- package/src/engine/ast.ts +105 -0
- package/src/engine/file-order.ts +104 -0
- package/src/engine/host.ts +79 -0
- package/src/engine/index.ts +79 -0
- package/src/engine/ts-morph-compat-host.ts +20 -0
- package/src/engine/tsgo-host.ts +119 -0
- package/src/engine/typescript-host.ts +159 -0
- package/src/generator/genmodules.ts +9 -4
- package/src/generator/gentypes.ts +1 -1
- package/src/generator/index.ts +1 -1
- package/src/logging.ts +10 -1
- package/src/rtk-query-generator/genmodules.ts +17 -9
- package/src/rtk-query-generator/index.ts +2 -12
- package/src/rtk-query-generator/sdk-interface.ts +2 -3
- package/tsconfig.json +7 -6
- package/build/analyzer/decorator.d.ts +0 -10
- package/build/analyzer/decorator.js +0 -29
- package/build/rtk-query-generator/gentypes.d.ts +0 -10
- package/build/rtk-query-generator/gentypes.js +0 -62
- package/build/tsconfig.tsbuildinfo +0 -1
- package/bun.lockb +0 -0
- package/src/rtk-query-generator/gentypes.ts +0 -74
- package/tsconfig.tsbuildinfo +0 -1
package/build/analyzer/index.js
CHANGED
|
@@ -2,100 +2,121 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* @file Entrypoint of the source API analyzer, used to generate the final SDK
|
|
4
4
|
*/
|
|
5
|
-
var
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
5
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
8
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
9
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
10
|
+
}
|
|
11
|
+
Object.defineProperty(o, k2, desc);
|
|
12
|
+
}) : (function(o, m, k, k2) {
|
|
13
|
+
if (k2 === undefined) k2 = k;
|
|
14
|
+
o[k2] = m[k];
|
|
15
|
+
}));
|
|
16
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
17
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
18
|
+
}) : function(o, v) {
|
|
19
|
+
o["default"] = v;
|
|
20
|
+
});
|
|
21
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
22
|
+
var ownKeys = function(o) {
|
|
23
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
24
|
+
var ar = [];
|
|
25
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
26
|
+
return ar;
|
|
27
|
+
};
|
|
28
|
+
return ownKeys(o);
|
|
29
|
+
};
|
|
30
|
+
return function (mod) {
|
|
31
|
+
if (mod && mod.__esModule) return mod;
|
|
32
|
+
var result = {};
|
|
33
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
34
|
+
__setModuleDefault(result, mod);
|
|
35
|
+
return result;
|
|
36
|
+
};
|
|
37
|
+
})();
|
|
14
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.analyzerCli =
|
|
16
|
-
const fs = require("fs");
|
|
17
|
-
const path = require("path");
|
|
39
|
+
exports.analyzerCli = analyzerCli;
|
|
40
|
+
const fs = __importStar(require("fs"));
|
|
41
|
+
const path = __importStar(require("path"));
|
|
18
42
|
const ts_morph_1 = require("ts-morph");
|
|
19
43
|
const logging_1 = require("../logging");
|
|
20
44
|
const builtin_1 = require("./builtin");
|
|
21
45
|
const controllers_1 = require("./controllers");
|
|
22
46
|
const extractor_1 = require("./extractor");
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
(0, logging_1.panic)("Output file's parent directory {magentaBright} does not exist.", jsonOutputParentDir);
|
|
39
|
-
}
|
|
40
|
-
(0, logging_1.debug)('Writing output to {yellow}', config.jsonOutput, config.jsonPrettyOutput ? 'beautified' : 'minified');
|
|
41
|
-
}
|
|
42
|
-
// ====== Find & parse 'tsconfig.json' ====== //
|
|
43
|
-
if (config.tsconfigFile && config.tsconfigFile.includes('/')) {
|
|
44
|
-
(0, logging_1.panic)('Provided tsconfig file name contains slashes');
|
|
45
|
-
}
|
|
46
|
-
const tsConfigFileName = (_a = config.tsconfigFile) !== null && _a !== void 0 ? _a : 'tsconfig.json';
|
|
47
|
-
const tsConfigFilePath = path.join(sourcePath, tsConfigFileName);
|
|
48
|
-
if (!fs.existsSync(tsConfigFilePath)) {
|
|
49
|
-
(0, logging_1.panic)('No {yellow} file found in provided source path {yellow}', tsConfigFileName, sourcePath);
|
|
47
|
+
const sdk_1 = require("./sdk");
|
|
48
|
+
async function analyzerCli(config) {
|
|
49
|
+
const started = Date.now();
|
|
50
|
+
const sourcePath = path.resolve(process.cwd(), config.apiInputPath);
|
|
51
|
+
if (!sourcePath)
|
|
52
|
+
(0, logging_1.panic)('Please provide a source directory');
|
|
53
|
+
if (!fs.existsSync(sourcePath))
|
|
54
|
+
(0, logging_1.panic)('Provided source path {magentaBright} does not exist', sourcePath);
|
|
55
|
+
if (!fs.lstatSync(sourcePath).isDirectory())
|
|
56
|
+
(0, logging_1.panic)('Provided source path is not a directory');
|
|
57
|
+
(0, logging_1.debug)(`Analyzing from source directory {yellow}`, sourcePath);
|
|
58
|
+
if (config.jsonOutput) {
|
|
59
|
+
const jsonOutputParentDir = path.dirname(path.resolve(process.cwd(), config.jsonOutput));
|
|
60
|
+
if (!fs.existsSync(jsonOutputParentDir)) {
|
|
61
|
+
(0, logging_1.panic)("Output file's parent directory {magentaBright} does not exist.", jsonOutputParentDir);
|
|
50
62
|
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
63
|
+
(0, logging_1.debug)('Writing output to {yellow}', config.jsonOutput, config.jsonPrettyOutput ? 'beautified' : 'minified');
|
|
64
|
+
}
|
|
65
|
+
// ====== Find & parse 'tsconfig.json' ====== //
|
|
66
|
+
if (config.tsconfigFile && config.tsconfigFile.includes('/')) {
|
|
67
|
+
(0, logging_1.panic)('Provided tsconfig file name contains slashes');
|
|
68
|
+
}
|
|
69
|
+
const tsConfigFileName = config.tsconfigFile ?? 'tsconfig.json';
|
|
70
|
+
const tsConfigFilePath = path.join(sourcePath, tsConfigFileName);
|
|
71
|
+
if (!fs.existsSync(tsConfigFilePath)) {
|
|
72
|
+
(0, logging_1.panic)('No {yellow} file found in provided source path {yellow}', tsConfigFileName, sourcePath);
|
|
73
|
+
}
|
|
74
|
+
// Create a 'ts-morph' project
|
|
75
|
+
const project = new ts_morph_1.Project({
|
|
76
|
+
tsConfigFilePath,
|
|
77
|
+
});
|
|
78
|
+
// Get the list of all TypeScript files in the source directory
|
|
79
|
+
const sourceTSFiles = project.getSourceFiles().map((file) => path.relative(sourcePath, file.getFilePath()));
|
|
80
|
+
(0, logging_1.debug)(`Found {magentaBright} source files.`, sourceTSFiles.length);
|
|
81
|
+
// Add them
|
|
82
|
+
(0, logging_1.debug)('\nAdding them to the source project...');
|
|
83
|
+
let progressByTenth = 0;
|
|
84
|
+
const strLen = sourceTSFiles.length.toString().length;
|
|
85
|
+
const hasProgress = (filesTreated) => filesTreated / sourceTSFiles.length >= (progressByTenth + 1) / 10;
|
|
86
|
+
const controllers = [];
|
|
87
|
+
for (let i = 0; i < sourceTSFiles.length; i++) {
|
|
88
|
+
const file = sourceTSFiles[i];
|
|
89
|
+
if (file.endsWith('.controller.ts')) {
|
|
90
|
+
controllers.push(file);
|
|
74
91
|
}
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
const magicTypes = ((_b = config.magicTypes) !== null && _b !== void 0 ? _b : []).concat(builtin_1.builtinMagicTypes);
|
|
80
|
-
const typesCache = new extractor_1.TypesExtractor(project, sourcePath, magicTypes);
|
|
81
|
-
const typesToExtract = (0, extractor_1.locateTypesFile)((0, extractor_1.flattenSdkResolvedTypes)(modules));
|
|
82
|
-
(0, logging_1.debug)('\n==== Extracting {} type' + (typesToExtract.length > 1 ? 's' : '') + ' ====\n', typesToExtract.length);
|
|
83
|
-
for (const loc of typesToExtract) {
|
|
84
|
-
const result = typesCache.extractType(loc);
|
|
85
|
-
if (result instanceof Error) {
|
|
86
|
-
(0, logging_1.panic)(result.message);
|
|
87
|
-
}
|
|
92
|
+
if (hasProgress(i + 1)) {
|
|
93
|
+
while (hasProgress(i + 1))
|
|
94
|
+
progressByTenth++;
|
|
95
|
+
(0, logging_1.debug)('| Progress: {yellow} ({magentaBright} files) - {green} controller{} found', (progressByTenth * 10).toString().padStart(3, ' ') + '%', `${(i + 1).toString().padStart(strLen, ' ')} / ${sourceTSFiles.length}`, controllers.length.toString().padStart(strLen, ''), controllers.length > 1 ? 's' : '');
|
|
88
96
|
}
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
97
|
+
}
|
|
98
|
+
(0, logging_1.debug)('All files were added successfully.\n');
|
|
99
|
+
const modules = (0, controllers_1.analyzeControllers)(controllers, sourcePath, project);
|
|
100
|
+
// Builtin magic types are concatenated **after** the configuration's ones, as this allows users to
|
|
101
|
+
// override the builtin ones if they want. Do **not** change the concatenation order!
|
|
102
|
+
const magicTypes = (config.magicTypes ?? []).concat(builtin_1.builtinMagicTypes);
|
|
103
|
+
const typesCache = new extractor_1.TypesExtractor(project, sourcePath, magicTypes);
|
|
104
|
+
const typesToExtract = (0, sdk_1.locateTypesFile)((0, sdk_1.flattenSdkResolvedTypes)(modules));
|
|
105
|
+
(0, logging_1.debug)('\n==== Extracting {} type' + (typesToExtract.length > 1 ? 's' : '') + ' ====\n', typesToExtract.length);
|
|
106
|
+
for (const loc of typesToExtract) {
|
|
107
|
+
const result = typesCache.extractType(loc);
|
|
108
|
+
if (result instanceof Error) {
|
|
109
|
+
(0, logging_1.panic)(result.message);
|
|
95
110
|
}
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
111
|
+
}
|
|
112
|
+
const content = {
|
|
113
|
+
modules,
|
|
114
|
+
types: typesCache.extracted,
|
|
115
|
+
};
|
|
116
|
+
if (config.jsonOutput) {
|
|
117
|
+
fs.writeFileSync(config.jsonOutput, (0, sdk_1.serializeSdkContent)(content, !!config.jsonPrettyOutput), 'utf8');
|
|
118
|
+
}
|
|
119
|
+
(0, logging_1.debug)('\n===== Done in {green}! ====', ((Date.now() - started) / 1000).toFixed(2) + 's');
|
|
120
|
+
return content;
|
|
99
121
|
}
|
|
100
|
-
|
|
101
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYW5hbHl6ZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOztHQUVHOzs7Ozs7Ozs7Ozs7QUFFSCx5QkFBd0I7QUFDeEIsNkJBQTRCO0FBRTVCLHVDQUFrQztBQUdsQyx3Q0FBeUM7QUFFekMsdUNBQTZDO0FBQzdDLCtDQUE4RDtBQUM5RCwyQ0FBNkc7QUFhN0csU0FBc0IsV0FBVyxDQUFDLE1BQWM7OztRQUM5QyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUE7UUFFMUIsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFBO1FBRW5FLElBQUksQ0FBQyxVQUFVO1lBQUUsSUFBQSxlQUFLLEVBQUMsbUNBQW1DLENBQUMsQ0FBQTtRQUUzRCxJQUFJLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUM7WUFBRSxJQUFBLGVBQUssRUFBQyxxREFBcUQsRUFBRSxVQUFVLENBQUMsQ0FBQTtRQUN4RyxJQUFJLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxXQUFXLEVBQUU7WUFBRSxJQUFBLGVBQUssRUFBQyx5Q0FBeUMsQ0FBQyxDQUFBO1FBRTdGLElBQUEsZUFBSyxFQUFDLDBDQUEwQyxFQUFFLFVBQVUsQ0FBQyxDQUFBO1FBRTdELElBQUksTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3RCLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQTtZQUV4RixJQUFJLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLENBQUM7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
|
|
122
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYW5hbHl6ZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOztHQUVHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFSCxNQUFZLEVBQUUsK0JBQVU7QUFDeEIsTUFBWSxJQUFJLGlDQUFZO0FBRTVCLHVDQUFrQztBQUdsQyx3Q0FBeUM7QUFFekMsdUNBQTZDO0FBQzdDLCtDQUFrRDtBQUNsRCwyQ0FBNEM7QUFDNUMsK0JBQWlHO0FBVTFGLEtBQUssc0JBQXNCLE1BQWM7SUFDOUMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFBO0lBRTFCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQTtJQUVuRSxJQUFJLENBQUMsVUFBVTtRQUFFLElBQUEsZUFBSyxFQUFDLG1DQUFtQyxDQUFDLENBQUE7SUFFM0QsSUFBSSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDO1FBQUUsSUFBQSxlQUFLLEVBQUMscURBQXFELEVBQUUsVUFBVSxDQUFDLENBQUE7SUFDeEcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUMsV0FBVyxFQUFFO1FBQUUsSUFBQSxlQUFLLEVBQUMseUNBQXlDLENBQUMsQ0FBQTtJQUU3RixJQUFBLGVBQUssRUFBQywwQ0FBMEMsRUFBRSxVQUFVLENBQUMsQ0FBQTtJQUU3RCxJQUFJLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUN0QixNQUFNLG1CQUFtQixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUE7UUFFeEYsSUFB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
|
|
@@ -2,36 +2,8 @@
|
|
|
2
2
|
* @file Analyzer for the source API's methods
|
|
3
3
|
*/
|
|
4
4
|
import { ClassDeclaration } from 'ts-morph';
|
|
5
|
-
import {
|
|
6
|
-
|
|
7
|
-
import { ResolvedTypeDeps } from './typedeps';
|
|
8
|
-
/**
|
|
9
|
-
* SDK interface for a single controller's method
|
|
10
|
-
*/
|
|
11
|
-
export interface SdkMethod {
|
|
12
|
-
/** Method's HTTP method (e.g. GET / POST) */
|
|
13
|
-
readonly httpMethod: SdkHttpMethod;
|
|
14
|
-
/** Method's name */
|
|
15
|
-
readonly name: string;
|
|
16
|
-
/** Method's parameters */
|
|
17
|
-
readonly params: SdkMethodParams;
|
|
18
|
-
/** Method's return type with resolved dependencies */
|
|
19
|
-
readonly returnType: ResolvedTypeDeps;
|
|
20
|
-
/** Method's parsed route */
|
|
21
|
-
readonly route: Route;
|
|
22
|
-
/** Method's URI path */
|
|
23
|
-
readonly uriPath: string;
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* HTTP method of a controller's method
|
|
27
|
-
*/
|
|
28
|
-
export declare enum SdkHttpMethod {
|
|
29
|
-
Delete = "DELETE",
|
|
30
|
-
Get = "GET",
|
|
31
|
-
Patch = "PATCH",
|
|
32
|
-
Post = "POST",
|
|
33
|
-
Put = "PUT"
|
|
34
|
-
}
|
|
5
|
+
import { SdkHttpMethod, SdkMethod } from './sdk';
|
|
6
|
+
export { SdkHttpMethod, SdkMethod };
|
|
35
7
|
/**
|
|
36
8
|
* Generate a SDK interface for a controller
|
|
37
9
|
* @param controllerClass The class declaration of the controller
|
|
@@ -3,24 +3,16 @@
|
|
|
3
3
|
* @file Analyzer for the source API's methods
|
|
4
4
|
*/
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
6
|
+
exports.SdkHttpMethod = void 0;
|
|
7
|
+
exports.analyzeMethods = analyzeMethods;
|
|
7
8
|
const chalk_1 = require("chalk");
|
|
8
9
|
const ts_morph_1 = require("ts-morph");
|
|
9
10
|
const logging_1 = require("../logging");
|
|
10
11
|
const params_1 = require("./params");
|
|
11
12
|
const route_1 = require("./route");
|
|
13
|
+
const sdk_1 = require("./sdk");
|
|
14
|
+
Object.defineProperty(exports, "SdkHttpMethod", { enumerable: true, get: function () { return sdk_1.SdkHttpMethod; } });
|
|
12
15
|
const typedeps_1 = require("./typedeps");
|
|
13
|
-
/**
|
|
14
|
-
* HTTP method of a controller's method
|
|
15
|
-
*/
|
|
16
|
-
var SdkHttpMethod;
|
|
17
|
-
(function (SdkHttpMethod) {
|
|
18
|
-
SdkHttpMethod["Delete"] = "DELETE";
|
|
19
|
-
SdkHttpMethod["Get"] = "GET";
|
|
20
|
-
SdkHttpMethod["Patch"] = "PATCH";
|
|
21
|
-
SdkHttpMethod["Post"] = "POST";
|
|
22
|
-
SdkHttpMethod["Put"] = "PUT";
|
|
23
|
-
})(SdkHttpMethod || (exports.SdkHttpMethod = SdkHttpMethod = {}));
|
|
24
16
|
/**
|
|
25
17
|
* Generate a SDK interface for a controller
|
|
26
18
|
* @param controllerClass The class declaration of the controller
|
|
@@ -37,7 +29,7 @@ function analyzeMethods(controllerClass, controllerUriPrefix, filePath, absolute
|
|
|
37
29
|
const methodName = method.getName();
|
|
38
30
|
(0, logging_1.debug)('├─ Found method: {yellow}', methodName);
|
|
39
31
|
// Get the HTTP decorator(s) of the method
|
|
40
|
-
const decorators = method.getDecorators().filter((dec) => Object.keys(SdkHttpMethod).includes(dec.getName()));
|
|
32
|
+
const decorators = method.getDecorators().filter((dec) => Object.keys(sdk_1.SdkHttpMethod).includes(dec.getName()));
|
|
41
33
|
// We expect to have exactly one HTTP decorator
|
|
42
34
|
if (decorators.length > 1) {
|
|
43
35
|
// If there is more than one decorator, that's invalid, so we can't analyze the method
|
|
@@ -51,7 +43,7 @@ function analyzeMethods(controllerClass, controllerUriPrefix, filePath, absolute
|
|
|
51
43
|
// Get the HTTP decorator
|
|
52
44
|
const dec = decorators[0];
|
|
53
45
|
// @ts-expect-error TypeScript doesn't like indexing an enumeration with a string key, although this works fine
|
|
54
|
-
const httpMethod = SdkHttpMethod[dec.getName()];
|
|
46
|
+
const httpMethod = sdk_1.SdkHttpMethod[dec.getName()];
|
|
55
47
|
(0, logging_1.debug)('├─── Detected HTTP method: {magentaBright}', httpMethod.toLocaleUpperCase());
|
|
56
48
|
// Get the arguments provided to the HTTP decorator (we expect one, the URI path)
|
|
57
49
|
const decArgs = dec.getArguments();
|
|
@@ -108,5 +100,4 @@ function analyzeMethods(controllerClass, controllerUriPrefix, filePath, absolute
|
|
|
108
100
|
}
|
|
109
101
|
return collected;
|
|
110
102
|
}
|
|
111
|
-
|
|
112
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0aG9kcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hbmFseXplci9tZXRob2RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7R0FFRzs7O0FBRUgsaUNBQTRCO0FBQzVCLHVDQUFvRTtBQUVwRSx3Q0FBMEM7QUFFMUMscUNBQXlEO0FBQ3pELG1DQUFxRDtBQUNyRCx5Q0FBc0U7QUF5QnRFOztHQUVHO0FBQ0gsSUFBWSxhQU1YO0FBTkQsV0FBWSxhQUFhO0lBQ3ZCLGtDQUFpQixDQUFBO0lBQ2pCLDRCQUFXLENBQUE7SUFDWCxnQ0FBZSxDQUFBO0lBQ2YsOEJBQWEsQ0FBQTtJQUNiLDRCQUFXLENBQUE7QUFDYixDQUFDLEVBTlcsYUFBYSw2QkFBYixhQUFhLFFBTXhCO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsU0FBZ0IsY0FBYyxDQUM1QixlQUFpQyxFQUNqQyxtQkFBa0MsRUFDbEMsUUFBZ0IsRUFDaEIsZUFBdUI7SUFFdkIsa0JBQWtCO0lBQ2xCLE1BQU0sU0FBUyxHQUFHLElBQUksS0FBSyxFQUFhLENBQUE7SUFFeEMsOEJBQThCO0lBQzlCLE1BQU0sT0FBTyxHQUFHLGVBQWUsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxZQUFZLDRCQUFpQixDQUF3QixDQUFBO0lBRWhJLEtBQUssTUFBTSxNQUFNLElBQUksT0FBTyxFQUFFLENBQUM7UUFDN0IsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFBO1FBRW5DLElBQUEsZUFBSyxFQUFDLDJCQUEyQixFQUFFLFVBQVUsQ0FBQyxDQUFBO1FBRTlDLDBDQUEwQztRQUMxQyxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsYUFBYSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLFFBQVEsQ0FB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
|
|
103
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0aG9kcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hbmFseXplci9tZXRob2RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7R0FFRzs7OztBQUVILGlDQUE0QjtBQUM1Qix1Q0FBb0U7QUFFcEUsd0NBQTBDO0FBRTFDLHFDQUF3QztBQUN4QyxtQ0FBOEM7QUFDOUMsK0JBQWdEOzhGQUF2QyxtQkFBYTtBQUN0Qix5Q0FBb0Q7QUFJcEQ7Ozs7OztHQU1HO0FBQ0gsd0JBQ0UsZUFBaUMsRUFDakMsbUJBQWtDLEVBQ2xDLFFBQWdCLEVBQ2hCLGVBQXVCO0lBRXZCLGtCQUFrQjtJQUNsQixNQUFNLFNBQVMsR0FBRyxJQUFJLEtBQUssRUFBYSxDQUFBO0lBRXhDLDhCQUE4QjtJQUM5QixNQUFNLE9BQU8sR0FBRyxlQUFlLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksWUFBWSw0QkFBaUIsQ0FBd0IsQ0FBQTtJQUVoSSxLQUFLLE1BQU0sTUFBTSxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQzdCLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQTtRQUVuQyxJQUFBLGVBQUssRUFBQywyQkFBMkIsRUFBRSxVQUFVLENBQUMsQ0FBQTtRQUU5QywwQ0FBMEM7UUFDMUMsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLGFBQWEsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxtQkFBYSxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUE7UUFFN0csK0NBQStDO1FBQy9DLElBQUksVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUMxQixzRkFBc0Y7WUFDdEYsT0FBTyxJQUFJLEtBQUssQ0FDZCxJQUFBLGdCQUFN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
|
package/build/analyzer/module.js
CHANGED
|
@@ -2,9 +2,42 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* @file Analyzer for the source API's modules
|
|
4
4
|
*/
|
|
5
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
8
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
9
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
10
|
+
}
|
|
11
|
+
Object.defineProperty(o, k2, desc);
|
|
12
|
+
}) : (function(o, m, k, k2) {
|
|
13
|
+
if (k2 === undefined) k2 = k;
|
|
14
|
+
o[k2] = m[k];
|
|
15
|
+
}));
|
|
16
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
17
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
18
|
+
}) : function(o, v) {
|
|
19
|
+
o["default"] = v;
|
|
20
|
+
});
|
|
21
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
22
|
+
var ownKeys = function(o) {
|
|
23
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
24
|
+
var ar = [];
|
|
25
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
26
|
+
return ar;
|
|
27
|
+
};
|
|
28
|
+
return ownKeys(o);
|
|
29
|
+
};
|
|
30
|
+
return function (mod) {
|
|
31
|
+
if (mod && mod.__esModule) return mod;
|
|
32
|
+
var result = {};
|
|
33
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
34
|
+
__setModuleDefault(result, mod);
|
|
35
|
+
return result;
|
|
36
|
+
};
|
|
37
|
+
})();
|
|
5
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.getModuleName =
|
|
7
|
-
const path = require("path");
|
|
39
|
+
exports.getModuleName = getModuleName;
|
|
40
|
+
const path = __importStar(require("path"));
|
|
8
41
|
const ts_morph_1 = require("ts-morph");
|
|
9
42
|
const logging_1 = require("../logging");
|
|
10
43
|
/**
|
|
@@ -34,5 +67,4 @@ function getModuleName(project, modulePath, sourcePath) {
|
|
|
34
67
|
}
|
|
35
68
|
return moduleName;
|
|
36
69
|
}
|
|
37
|
-
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FuYWx5emVyL21vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7O0dBRUc7OztBQUVILDZCQUE0QjtBQUU1Qix1Q0FBd0M7QUFFeEMsd0NBQTBDO0FBRTFDOzs7OztHQUtHO0FBQ0gsU0FBZ0IsYUFBYSxDQUFDLE9BQWdCLEVBQUUsVUFBa0IsRUFBRSxVQUFrQjtJQUNwRixxQ0FBcUM7SUFDckMsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUE7SUFFL0Usb0NBQW9DO0lBQ3BDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsZUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUE7SUFFN0gsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2YsSUFBQSxlQUFLLEVBQUMsa0RBQWtELEVBQUUsVUFBVSxDQUFDLENBQUE7SUFDdkUsQ0FBQztJQUVELElBQUksQ0FBQyxlQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDO1FBQ3JDLElBQUEsZUFBSyxFQUFDLGdHQUFnRyxDQUFDLENBQUE7SUFFekcsTUFBTSxVQUFVLEdBQUcsU0FBUyxDQUFDLE9BQU8sRUFBRSxDQUFBO0lBRXRDLElBQUksVUFBVSxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQzdCLElBQUEsZUFBSyxFQUFDLDJEQUEyRCxDQUFDLENBQUE7SUFDcEUsQ0FBQztJQUVELE1BQU0sVUFBVSxHQUFHLFNBQVMsQ0FBQyxhQUFhLEVBQUUsQ0FBQTtJQUM1QyxNQUFNLGVBQWUsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLEtBQUssUUFBUSxDQUFDLENBQUE7SUFFNUUsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3JCLElBQUEsZUFBSyxFQUFDLElBQUEsZ0JBQU0sRUFBQywrRUFBK0UsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUE7SUFDbkksQ0FBQztJQUVELE9BQU8sVUFBVSxDQUFBO0FBQ25CLENBQUM7QUE1QkQsc0NBNEJDIn0=
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FuYWx5emVyL21vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7O0dBRUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVILE1BQVksSUFBSSxpQ0FBWTtBQUU1Qix1Q0FBd0M7QUFFeEMsd0NBQTBDO0FBRTFDOzs7OztHQUtHO0FBQ0gsdUJBQThCLE9BQWdCLEVBQUUsVUFBa0IsRUFBRSxVQUFrQjtJQUNwRixxQ0FBcUM7SUFDckMsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUE7SUFFL0Usb0NBQW9DO0lBQ3BDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsZUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUE7SUFFN0gsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2YsSUFBQSxlQUFLLEVBQUMsa0RBQWtELEVBQUUsVUFBVSxDQUFDLENBQUE7SUFDdkUsQ0FBQztJQUVELElBQUksQ0FBQyxlQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDO1FBQ3JDLElBQUEsZUFBSyxFQUFDLGdHQUFnRyxDQUFDLENBQUE7SUFFekcsTUFBTSxVQUFVLEdBQUcsU0FBUyxDQUFDLE9BQU8sRUFBRSxDQUFBO0lBRXRDLElBQUksVUFBVSxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQzdCLElBQUEsZUFBSyxFQUFDLDJEQUEyRCxDQUFDLENBQUE7SUFDcEUsQ0FBQztJQUVELE1BQU0sVUFBVSxHQUFHLFNBQVMsQ0FBQyxhQUFhLEVBQUUsQ0FBQTtJQUM1QyxNQUFNLGVBQWUsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLEtBQUssUUFBUSxDQUFDLENBQUE7SUFFNUUsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3JCLElBQUEsZUFBSyxFQUFDLElBQUEsZ0JBQU0sRUFBQywrRUFBK0UsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUE7SUFDbkksQ0FBQztJQUVELE9BQU8sVUFBVSxDQUFBO0FBQ25CLENBQUMifQ==
|
|
@@ -2,45 +2,14 @@
|
|
|
2
2
|
* @file Analyzer for the source API's controllers' methods' parameters
|
|
3
3
|
*/
|
|
4
4
|
import { ClassDeclaration, Decorator, MethodDeclaration, ParameterDeclaration } from 'ts-morph';
|
|
5
|
-
import { SdkHttpMethod } from './methods';
|
|
6
5
|
import { Route } from './route';
|
|
7
|
-
import {
|
|
8
|
-
|
|
9
|
-
* Type of a parameter that must be passed to an SDK method: Body, Query or Route Param
|
|
10
|
-
* Supports accessing parameters individually by key or as a whole object
|
|
11
|
-
*
|
|
12
|
-
* EXAMPLE
|
|
13
|
-
*
|
|
14
|
-
* Controller Method:
|
|
15
|
-
*
|
|
16
|
-
* getStuff(@Query('email') email: string, @Query('companyId'): CompanyId)
|
|
17
|
-
*
|
|
18
|
-
* SDK Method Param:
|
|
19
|
-
* { email: string, companyId: CompanyId }
|
|
20
|
-
*
|
|
21
|
-
* OR
|
|
22
|
-
*
|
|
23
|
-
* Controller Method:
|
|
24
|
-
* type EmailAndCompanyId = { email: string, companyId: CompanyId }
|
|
25
|
-
* getStuff(@Query(): EmailAndCompanyId)
|
|
26
|
-
*
|
|
27
|
-
* SDK Method Param:
|
|
28
|
-
* EmailAndCompanyId
|
|
29
|
-
*/
|
|
30
|
-
export type SdkMethodParam = SdkMethodParamMap | ResolvedTypeDeps | null;
|
|
31
|
-
export type SdkMethodParamMap = {
|
|
32
|
-
[key: string]: ResolvedTypeDeps;
|
|
33
|
-
};
|
|
34
|
-
export declare const isParamResolvedType: (param: SdkMethodParam) => param is ResolvedTypeDeps;
|
|
35
|
-
export declare const getParamResolvedTypes: (param: SdkMethodParam) => ResolvedTypeDeps[];
|
|
6
|
+
import { ArgDecorator, SdkMethodParams as BaseSdkMethodParams, getParamResolvedTypes, isParamResolvedType, SdkHttpMethod, SdkMethodParam, SdkMethodParamMap } from './sdk';
|
|
7
|
+
export { ArgDecorator, getParamResolvedTypes, isParamResolvedType, SdkMethodParam, SdkMethodParamMap };
|
|
36
8
|
/**
|
|
37
9
|
* SDK interface for a controller's method's parameters
|
|
38
10
|
*/
|
|
39
|
-
export interface SdkMethodParams {
|
|
40
|
-
bodyParams: SdkMethodParam;
|
|
11
|
+
export interface SdkMethodParams extends BaseSdkMethodParams {
|
|
41
12
|
context: MethodContext;
|
|
42
|
-
queryParams: SdkMethodParam;
|
|
43
|
-
routeParams: SdkMethodParam;
|
|
44
13
|
}
|
|
45
14
|
export type MethodContext = {
|
|
46
15
|
absoluteSrcPath: string;
|
|
@@ -50,11 +19,6 @@ export type MethodContext = {
|
|
|
50
19
|
method: MethodDeclaration;
|
|
51
20
|
route: Route;
|
|
52
21
|
};
|
|
53
|
-
export declare enum ArgDecorator {
|
|
54
|
-
Body = "Body",
|
|
55
|
-
Param = "Param",
|
|
56
|
-
Query = "Query"
|
|
57
|
-
}
|
|
58
22
|
export type DecoratedArg = {
|
|
59
23
|
arg: ParameterDeclaration;
|
|
60
24
|
argParamKey: string | null;
|
package/build/analyzer/params.js
CHANGED
|
@@ -3,35 +3,19 @@
|
|
|
3
3
|
* @file Analyzer for the source API's controllers' methods' parameters
|
|
4
4
|
*/
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
6
|
+
exports.isParamResolvedType = exports.getParamResolvedTypes = exports.ArgDecorator = void 0;
|
|
7
|
+
exports.extractParams = extractParams;
|
|
8
|
+
exports.extractDecoratedArgs = extractDecoratedArgs;
|
|
9
|
+
exports.extractArgParamKey = extractArgParamKey;
|
|
10
|
+
exports.mergeDecoratedArgs = mergeDecoratedArgs;
|
|
7
11
|
const ts_morph_1 = require("ts-morph");
|
|
8
12
|
const logging_1 = require("../logging");
|
|
9
|
-
const methods_1 = require("./methods");
|
|
10
13
|
const route_1 = require("./route");
|
|
14
|
+
const sdk_1 = require("./sdk");
|
|
15
|
+
Object.defineProperty(exports, "ArgDecorator", { enumerable: true, get: function () { return sdk_1.ArgDecorator; } });
|
|
16
|
+
Object.defineProperty(exports, "getParamResolvedTypes", { enumerable: true, get: function () { return sdk_1.getParamResolvedTypes; } });
|
|
17
|
+
Object.defineProperty(exports, "isParamResolvedType", { enumerable: true, get: function () { return sdk_1.isParamResolvedType; } });
|
|
11
18
|
const typedeps_1 = require("./typedeps");
|
|
12
|
-
const isParamResolvedType = (param) => {
|
|
13
|
-
if (param === null) {
|
|
14
|
-
return false;
|
|
15
|
-
}
|
|
16
|
-
return 'rawType' in param && 'resolvedType' in param && 'relativeFilePath' in param && 'dependencies' in param && 'localTypes' in param;
|
|
17
|
-
};
|
|
18
|
-
exports.isParamResolvedType = isParamResolvedType;
|
|
19
|
-
const getParamResolvedTypes = (param) => {
|
|
20
|
-
if (param === null) {
|
|
21
|
-
return [];
|
|
22
|
-
}
|
|
23
|
-
if ((0, exports.isParamResolvedType)(param)) {
|
|
24
|
-
return [param];
|
|
25
|
-
}
|
|
26
|
-
return Object.values(param);
|
|
27
|
-
};
|
|
28
|
-
exports.getParamResolvedTypes = getParamResolvedTypes;
|
|
29
|
-
var ArgDecorator;
|
|
30
|
-
(function (ArgDecorator) {
|
|
31
|
-
ArgDecorator["Body"] = "Body";
|
|
32
|
-
ArgDecorator["Param"] = "Param";
|
|
33
|
-
ArgDecorator["Query"] = "Query";
|
|
34
|
-
})(ArgDecorator || (exports.ArgDecorator = ArgDecorator = {}));
|
|
35
19
|
/**
|
|
36
20
|
* Generate a SDK interface for a controller's method's parameters
|
|
37
21
|
* @param httpMethod The method's HTTP method
|
|
@@ -53,13 +37,13 @@ function extractParams(context) {
|
|
|
53
37
|
/**
|
|
54
38
|
* Validate Body Params are not used in GET requests
|
|
55
39
|
*/
|
|
56
|
-
if (httpMethod ===
|
|
40
|
+
if (httpMethod === sdk_1.SdkHttpMethod.Get && resolvedParams.bodyParams) {
|
|
57
41
|
panicWithContext(`${httpMethod} request should not have @Body params, use @Query params instead`, context);
|
|
58
42
|
}
|
|
59
43
|
/**
|
|
60
44
|
* Validate Query Params are not used in non-GET requests
|
|
61
45
|
*/
|
|
62
|
-
if (httpMethod !==
|
|
46
|
+
if (httpMethod !== sdk_1.SdkHttpMethod.Get && resolvedParams.queryParams) {
|
|
63
47
|
panicWithContext(`${httpMethod} request should not have @Query params, use @Body params instead`, context);
|
|
64
48
|
}
|
|
65
49
|
/**
|
|
@@ -84,12 +68,11 @@ function extractParams(context) {
|
|
|
84
68
|
}
|
|
85
69
|
return resolvedParams;
|
|
86
70
|
}
|
|
87
|
-
exports.extractParams = extractParams;
|
|
88
71
|
function extractDecoratedArgs(context) {
|
|
89
72
|
const decoratedArgs = {
|
|
90
|
-
[ArgDecorator.Param]: [],
|
|
91
|
-
[ArgDecorator.Query]: [],
|
|
92
|
-
[ArgDecorator.Body]: [],
|
|
73
|
+
[sdk_1.ArgDecorator.Param]: [],
|
|
74
|
+
[sdk_1.ArgDecorator.Query]: [],
|
|
75
|
+
[sdk_1.ArgDecorator.Body]: [],
|
|
93
76
|
};
|
|
94
77
|
const { controllerClass, method } = context;
|
|
95
78
|
const args = method.getParameters();
|
|
@@ -97,7 +80,7 @@ function extractDecoratedArgs(context) {
|
|
|
97
80
|
const argName = arg.getName();
|
|
98
81
|
(0, logging_1.debug)('├───── Detected argument: {yellow}', argName);
|
|
99
82
|
// Arguments are collected as soon as they have a decorator like @Query() or @Body()
|
|
100
|
-
const argDecorators = arg.getDecorators().filter((dec) => Object.values(ArgDecorator).includes(dec.getName()));
|
|
83
|
+
const argDecorators = arg.getDecorators().filter((dec) => Object.values(sdk_1.ArgDecorator).includes(dec.getName()));
|
|
101
84
|
if (argDecorators.length === 0) {
|
|
102
85
|
// If we have no argument, this is not an argument we are interested in, so we just skip it
|
|
103
86
|
(0, logging_1.debug)('├───── Skipping this argument as it does not have a decorator');
|
|
@@ -109,7 +92,7 @@ function extractDecoratedArgs(context) {
|
|
|
109
92
|
// Get the only decrator
|
|
110
93
|
const decorator = argDecorators[0];
|
|
111
94
|
const decoratorType = decorator.getName();
|
|
112
|
-
const argParamKey = extractArgParamKey(
|
|
95
|
+
const argParamKey = extractArgParamKey({ ...context, arg, decorator });
|
|
113
96
|
const argType = arg.getType();
|
|
114
97
|
if (!argParamKey && !argType.isObject()) {
|
|
115
98
|
(0, logging_1.panic)(`${controllerClass.getName()} ${method.getName()} generic controller argument ${decoratorType}() ${argName} must be an object type`);
|
|
@@ -124,7 +107,6 @@ function extractDecoratedArgs(context) {
|
|
|
124
107
|
}
|
|
125
108
|
return decoratedArgs;
|
|
126
109
|
}
|
|
127
|
-
exports.extractDecoratedArgs = extractDecoratedArgs;
|
|
128
110
|
function extractArgParamKey(context) {
|
|
129
111
|
const { arg, controllerClass, decorator, method } = context;
|
|
130
112
|
const decoratorArgs = decorator.getArguments();
|
|
@@ -144,7 +126,6 @@ function extractArgParamKey(context) {
|
|
|
144
126
|
}
|
|
145
127
|
return paramKey;
|
|
146
128
|
}
|
|
147
|
-
exports.extractArgParamKey = extractArgParamKey;
|
|
148
129
|
function mergeDecoratedArgs(decoratedArgs) {
|
|
149
130
|
let genericParam = null;
|
|
150
131
|
const paramMap = {};
|
|
@@ -170,7 +151,6 @@ function mergeDecoratedArgs(decoratedArgs) {
|
|
|
170
151
|
}
|
|
171
152
|
return hasArgsByKey ? paramMap : genericParam;
|
|
172
153
|
}
|
|
173
|
-
exports.mergeDecoratedArgs = mergeDecoratedArgs;
|
|
174
154
|
const panicWithContext = (message, context) => {
|
|
175
155
|
const { controllerClass, filePath, httpMethod, method } = context;
|
|
176
156
|
const ctx = {
|
|
@@ -181,4 +161,4 @@ const panicWithContext = (message, context) => {
|
|
|
181
161
|
};
|
|
182
162
|
(0, logging_1.panic)(`${message}\n${JSON.stringify(ctx, null, 2)}`);
|
|
183
163
|
};
|
|
184
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
164
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW1zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FuYWx5emVyL3BhcmFtcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7O0dBRUc7Ozs7Ozs7QUFFSCx1Q0FBMkc7QUFFM0csd0NBQXlDO0FBRXpDLG1DQUFnRDtBQUNoRCwrQkFRYzs2RkFQWixrQkFBWTtzR0FFWiwyQkFBcUI7b0dBQ3JCLHlCQUFtQjtBQUtyQix5Q0FBb0Q7QUE0QnBEOzs7Ozs7OztHQVFHO0FBQ0gsdUJBQThCLE9BQXNCO0lBQ2xELE1BQU0sRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLEdBQUcsT0FBTyxDQUFBO0lBQ3JDLE1BQU0sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQzVELE1BQU0sY0FBYyxHQUFvQjtRQUN0QyxXQUFXLEVBQUUsa0JBQWtCLENBQUMsS0FBSyxDQUFDO1FBQ3RDLFdBQVcsRUFBRSxrQkFBa0IsQ0FBQyxLQUFLLENBQUM7UUFDdEMsVUFBVSxFQUFFLGtCQUFrQixDQUFDLElBQUksQ0FBQztRQUNwQyxPQUFPO0tBQ1IsQ0FBQTtJQUVEOztPQUVHO0lBQ0gsSUFBSSxVQUFVLEtBQUssbUJBQWEsQ0FBQyxHQUFHLElBQUksY0FBYyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2xFLGdCQUFnQixDQUFDLEdBQUcsVUFBVSxrRUFBa0UsRUFBRSxPQUFPLENBQUMsQ0FBQTtJQUM1RyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJLFVBQVUsS0FBSyxtQkFBYSxDQUFDLEdBQUcsSUFBSSxjQUFjLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbkUsZ0JBQWdCLENBQUMsR0FBRyxVQUFVLGtFQUFrRSxFQUFFLE9BQU8sQ0FBQyxDQUFBO0lBQzVHLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sRUFBRSxXQUFXLEVBQUUsR0FBRyxjQUFjLENBQUE7SUFDdEMs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
|