@buildvision/nest-sdk-generator 2.0.0 → 2.1.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 +63 -0
- package/README.md +2 -2
- package/build/analyzer/classdeps.js +1 -1
- package/build/analyzer/controller.d.ts +4 -4
- package/build/analyzer/controller.js +3 -3
- package/build/analyzer/controllers.d.ts +1 -1
- package/build/analyzer/controllers.js +4 -4
- package/build/analyzer/decorator.d.ts +2 -2
- package/build/analyzer/decorator.js +19 -19
- package/build/analyzer/extractor.d.ts +4 -4
- package/build/analyzer/extractor.js +2 -2
- package/build/analyzer/index.d.ts +1 -1
- package/build/analyzer/index.js +2 -2
- package/build/analyzer/methods.d.ts +7 -7
- package/build/analyzer/methods.js +5 -6
- package/build/analyzer/module.js +2 -2
- package/build/analyzer/params.d.ts +12 -12
- package/build/analyzer/params.js +31 -15
- package/build/analyzer/route.d.ts +1 -1
- package/build/analyzer/route.js +6 -4
- package/build/analyzer/typedeps.d.ts +6 -6
- package/build/analyzer/typedeps.js +3 -3
- package/build/bin.js +9 -13
- package/build/config.d.ts +29 -19
- package/build/config.js +2 -2
- package/build/generator/genmodules.d.ts +29 -5
- package/build/generator/genmodules.js +58 -31
- package/build/generator/gentypes.js +1 -1
- package/build/generator/index.d.ts +1 -1
- package/build/generator/index.js +23 -17
- package/build/generator/prettier.d.ts +1 -1
- package/build/generator/prettier.js +2 -2
- package/build/generator/sdk-interface.d.ts +1 -1
- package/build/generator/sdk-interface.js +5 -5
- package/build/logging.js +1 -1
- package/build/rtk-query-generator/genmodules.d.ts +54 -0
- package/build/rtk-query-generator/genmodules.js +252 -0
- package/build/rtk-query-generator/gentypes.d.ts +10 -0
- package/build/rtk-query-generator/gentypes.js +62 -0
- package/build/rtk-query-generator/index.d.ts +6 -0
- package/build/rtk-query-generator/index.js +84 -0
- package/build/rtk-query-generator/prettier.d.ts +16 -0
- package/build/rtk-query-generator/prettier.js +43 -0
- package/build/rtk-query-generator/sdk-interface.d.ts +1 -0
- package/build/rtk-query-generator/sdk-interface.js +36 -0
- package/build/tsconfig.tsbuildinfo +1 -1
- package/build/utils.js +1 -1
- package/bun.lockb +0 -0
- package/package.json +15 -5
- package/src/analyzer/classdeps.ts +3 -0
- package/src/analyzer/controller.ts +12 -6
- package/src/analyzer/controllers.ts +7 -4
- package/src/analyzer/extractor.ts +9 -6
- package/src/analyzer/index.ts +5 -2
- package/src/analyzer/methods.ts +13 -12
- package/src/analyzer/module.ts +4 -10
- package/src/analyzer/params.ts +78 -64
- package/src/analyzer/route.ts +5 -3
- package/src/analyzer/typedeps.ts +13 -11
- package/src/bin.ts +11 -13
- package/src/config.ts +35 -24
- package/src/generator/genmodules.ts +90 -37
- package/src/generator/gentypes.ts +1 -0
- package/src/generator/index.ts +23 -19
- package/src/generator/prettier.ts +4 -2
- package/src/logging.ts +2 -1
- package/src/rtk-query-generator/genmodules.ts +335 -0
- package/src/rtk-query-generator/gentypes.ts +74 -0
- package/src/rtk-query-generator/index.ts +92 -0
- package/src/rtk-query-generator/prettier.ts +48 -0
- package/src/rtk-query-generator/sdk-interface.ts +32 -0
- package/src/utils.ts +2 -2
- package/tsconfig.tsbuildinfo +1 -1
package/build/analyzer/params.js
CHANGED
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.mergeDecoratedArgs = exports.extractArgParamKey = exports.extractDecoratedArgs = exports.extractParams = exports.ArgDecorator = exports.getParamResolvedTypes = exports.isParamResolvedType = void 0;
|
|
7
7
|
const ts_morph_1 = require("ts-morph");
|
|
8
8
|
const logging_1 = require("../logging");
|
|
9
|
+
const methods_1 = require("./methods");
|
|
9
10
|
const route_1 = require("./route");
|
|
10
11
|
const typedeps_1 = require("./typedeps");
|
|
11
12
|
const isParamResolvedType = (param) => {
|
|
@@ -27,10 +28,10 @@ const getParamResolvedTypes = (param) => {
|
|
|
27
28
|
exports.getParamResolvedTypes = getParamResolvedTypes;
|
|
28
29
|
var ArgDecorator;
|
|
29
30
|
(function (ArgDecorator) {
|
|
31
|
+
ArgDecorator["Body"] = "Body";
|
|
30
32
|
ArgDecorator["Param"] = "Param";
|
|
31
33
|
ArgDecorator["Query"] = "Query";
|
|
32
|
-
|
|
33
|
-
})(ArgDecorator = exports.ArgDecorator || (exports.ArgDecorator = {}));
|
|
34
|
+
})(ArgDecorator || (exports.ArgDecorator = ArgDecorator = {}));
|
|
34
35
|
/**
|
|
35
36
|
* Generate a SDK interface for a controller's method's parameters
|
|
36
37
|
* @param httpMethod The method's HTTP method
|
|
@@ -41,25 +42,40 @@ var ArgDecorator;
|
|
|
41
42
|
* @returns A SDK interface for the method's parameters
|
|
42
43
|
*/
|
|
43
44
|
function extractParams(context) {
|
|
44
|
-
const {
|
|
45
|
-
const { Param, Query
|
|
45
|
+
const { httpMethod, route } = context;
|
|
46
|
+
const { Body, Param, Query } = extractDecoratedArgs(context);
|
|
46
47
|
const resolvedParams = {
|
|
47
48
|
routeParams: mergeDecoratedArgs(Param),
|
|
48
49
|
queryParams: mergeDecoratedArgs(Query),
|
|
49
50
|
bodyParams: mergeDecoratedArgs(Body),
|
|
50
51
|
context,
|
|
51
52
|
};
|
|
53
|
+
/**
|
|
54
|
+
* Validate Body Params are not used in GET requests
|
|
55
|
+
*/
|
|
56
|
+
if (httpMethod === methods_1.SdkHttpMethod.Get && resolvedParams.bodyParams) {
|
|
57
|
+
panicWithContext(`${httpMethod} request should not have @Body params, use @Query params instead`, context);
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Validate Query Params are not used in non-GET requests
|
|
61
|
+
*/
|
|
62
|
+
if (httpMethod !== methods_1.SdkHttpMethod.Get && resolvedParams.queryParams) {
|
|
63
|
+
panicWithContext(`${httpMethod} request should not have @Query params, use @Body params instead`, context);
|
|
64
|
+
}
|
|
52
65
|
/**
|
|
53
66
|
* Validate Route Params exist in route URL
|
|
54
67
|
*/
|
|
55
68
|
const { routeParams } = resolvedParams;
|
|
56
69
|
if (routeParams) {
|
|
57
70
|
const allowedRouteParams = new Set((0, route_1.paramsFromRoute)(route));
|
|
58
|
-
const usedRouteParams = routeParams instanceof ts_morph_1.Type
|
|
59
|
-
// If routeParams was resolved to a single type, assume there's only one decorated argument
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
71
|
+
const usedRouteParams = routeParams instanceof ts_morph_1.Type
|
|
72
|
+
? // If routeParams was resolved to a single type, assume there's only one decorated argument
|
|
73
|
+
Param[0].arg
|
|
74
|
+
.getType()
|
|
75
|
+
.getProperties()
|
|
76
|
+
.map((prop) => prop.getName())
|
|
77
|
+
: // If routeParams was resolved to a map, assume the keys are the route params
|
|
78
|
+
Object.keys(routeParams);
|
|
63
79
|
for (const usedParam of usedRouteParams) {
|
|
64
80
|
if (!allowedRouteParams.has(usedParam)) {
|
|
65
81
|
panicWithContext(`Route param ${usedParam} does not appear in route URL`, context);
|
|
@@ -75,7 +91,7 @@ function extractDecoratedArgs(context) {
|
|
|
75
91
|
[ArgDecorator.Query]: [],
|
|
76
92
|
[ArgDecorator.Body]: [],
|
|
77
93
|
};
|
|
78
|
-
const {
|
|
94
|
+
const { controllerClass, method } = context;
|
|
79
95
|
const args = method.getParameters();
|
|
80
96
|
for (const arg of args) {
|
|
81
97
|
const argName = arg.getName();
|
|
@@ -110,7 +126,7 @@ function extractDecoratedArgs(context) {
|
|
|
110
126
|
}
|
|
111
127
|
exports.extractDecoratedArgs = extractDecoratedArgs;
|
|
112
128
|
function extractArgParamKey(context) {
|
|
113
|
-
const {
|
|
129
|
+
const { arg, controllerClass, decorator, method } = context;
|
|
114
130
|
const decoratorArgs = decorator.getArguments();
|
|
115
131
|
if (decoratorArgs.length > 1) {
|
|
116
132
|
(0, logging_1.panic)(`${controllerClass.getName()} ${method.getName()} ${decorator.getName()}() ${arg.getName()} argument decorator has multiple parameters`);
|
|
@@ -131,9 +147,9 @@ function extractArgParamKey(context) {
|
|
|
131
147
|
exports.extractArgParamKey = extractArgParamKey;
|
|
132
148
|
function mergeDecoratedArgs(decoratedArgs) {
|
|
133
149
|
let genericParam = null;
|
|
134
|
-
|
|
150
|
+
const paramMap = {};
|
|
135
151
|
for (const decoratedArg of decoratedArgs) {
|
|
136
|
-
const {
|
|
152
|
+
const { arg, argParamKey, context, decoratorType } = decoratedArg;
|
|
137
153
|
const resolvedType = (0, typedeps_1.resolveTypeDependencies)(arg.getType(), context.filePath, context.absoluteSrcPath);
|
|
138
154
|
if (argParamKey) {
|
|
139
155
|
if (paramMap[argParamKey]) {
|
|
@@ -156,7 +172,7 @@ function mergeDecoratedArgs(decoratedArgs) {
|
|
|
156
172
|
}
|
|
157
173
|
exports.mergeDecoratedArgs = mergeDecoratedArgs;
|
|
158
174
|
const panicWithContext = (message, context) => {
|
|
159
|
-
const { controllerClass, httpMethod, method
|
|
175
|
+
const { controllerClass, filePath, httpMethod, method } = context;
|
|
160
176
|
const ctx = {
|
|
161
177
|
controller: controllerClass.getName(),
|
|
162
178
|
method: method.getName(),
|
|
@@ -165,4 +181,4 @@ const panicWithContext = (message, context) => {
|
|
|
165
181
|
};
|
|
166
182
|
(0, logging_1.panic)(`${message}\n${JSON.stringify(ctx, null, 2)}`);
|
|
167
183
|
};
|
|
168
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
184
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW1zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FuYWx5emVyL3BhcmFtcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7O0dBRUc7OztBQUVILHVDQUEyRztBQUUzRyx3Q0FBeUM7QUFFekMsdUNBQXlDO0FBQ3pDLG1DQUFnRDtBQUNoRCx5Q0FBc0U7QUE0Qi9ELE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxLQUFxQixFQUE2QixFQUFFO0lBQ3RGLElBQUksS0FBSyxLQUFLLElBQUksRUFBRSxDQUFDO1FBQ25CLE9BQU8sS0FBSyxDQUFBO0lBQ2QsQ0FBQztJQUNELE9BQU8sU0FBUyxJQUFJLEtBQUssSUFBSSxjQUFjLElBQUksS0FBSyxJQUFJLGtCQUFrQixJQUFJLEtBQUssSUFBSSxjQUFjLElBQUksS0FBSyxJQUFJLFlBQVksSUFBSSxLQUFLLENBQUE7QUFDekksQ0FBQyxDQUFBO0FBTFksUUFBQSxtQkFBbUIsdUJBSy9CO0FBRU0sTUFBTSxxQkFBcUIsR0FBRyxDQUFDLEtBQXFCLEVBQXNCLEVBQUU7SUFDakYsSUFBSSxLQUFLLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDbkIsT0FBTyxFQUFFLENBQUE7SUFDWCxDQUFDO0lBQ0QsSUFBSSxJQUFBLDJCQUFtQixFQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDL0IsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ2hCLENBQUM7SUFDRCxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUE7QUFDN0IsQ0FBQyxDQUFBO0FBUlksUUFBQSxxQkFBcUIseUJBUWpDO0FBcUJELElBQVksWUFJWDtBQUpELFdBQVksWUFBWTtJQUN0Qiw2QkFBYSxDQUFBO0lBQ2IsK0JBQWUsQ0FBQTtJQUNmLCtCQUFlLENBQUE7QUFDakIsQ0FBQyxFQUpXLFlBQVksNEJBQVosWUFBWSxRQUl2QjtBQVVEOzs7Ozs7OztHQVFHO0FBQ0gsU0FBZ0IsYUFBYSxDQUFDLE9B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
|
package/build/analyzer/route.js
CHANGED
|
@@ -32,6 +32,7 @@ function analyzeUri(uriPath) {
|
|
|
32
32
|
if (part === '')
|
|
33
33
|
continue;
|
|
34
34
|
// Ensure there is no generic character in the path as we don't support them
|
|
35
|
+
// eslint-disable-next-line no-useless-escape
|
|
35
36
|
const genericErr = _findInvalid(part, /[\*\+\?]/);
|
|
36
37
|
if (genericErr) {
|
|
37
38
|
return new Error('Generic symbols (* + ?) are not supported as they prevent from determining the right route to use. Found in URI:\n' + genericErr);
|
|
@@ -65,7 +66,7 @@ exports.analyzeUri = analyzeUri;
|
|
|
65
66
|
* @param route
|
|
66
67
|
*/
|
|
67
68
|
function routePartIsParam(part) {
|
|
68
|
-
return
|
|
69
|
+
return 'param' in part;
|
|
69
70
|
}
|
|
70
71
|
exports.routePartIsParam = routePartIsParam;
|
|
71
72
|
function paramsFromRoute(route) {
|
|
@@ -93,10 +94,11 @@ exports.debugUri = debugUri;
|
|
|
93
94
|
* @param params
|
|
94
95
|
*/
|
|
95
96
|
function resolveRoute(route, params) {
|
|
96
|
-
|
|
97
|
+
const uri = [];
|
|
97
98
|
for (const part of route.parts) {
|
|
98
99
|
if ('segment' in part) {
|
|
99
100
|
uri.push(part.segment);
|
|
101
|
+
// eslint-disable-next-line no-prototype-builtins
|
|
100
102
|
}
|
|
101
103
|
else if (!params.hasOwnProperty(part.param)) {
|
|
102
104
|
return new Error('Missing route parameter ' + part.param);
|
|
@@ -114,7 +116,7 @@ exports.resolveRoute = resolveRoute;
|
|
|
114
116
|
* @param paramsProvider
|
|
115
117
|
*/
|
|
116
118
|
function resolveRouteWith(route, paramsProvider) {
|
|
117
|
-
|
|
119
|
+
const uri = [];
|
|
118
120
|
for (const part of route.parts) {
|
|
119
121
|
if ('segment' in part) {
|
|
120
122
|
uri.push(part.segment);
|
|
@@ -132,4 +134,4 @@ function resolveRouteWith(route, paramsProvider) {
|
|
|
132
134
|
return (route.isRoot ? '/' : '') + uri.join('/');
|
|
133
135
|
}
|
|
134
136
|
exports.resolveRouteWith = resolveRouteWith;
|
|
135
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
137
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYW5hbHl6ZXIvcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOztHQUVHOzs7QUFrQkg7OztHQUdHO0FBQ0gsU0FBZ0IsVUFBVSxDQUFDLE9BQWU7SUFDeEMsa0NBQWtDO0lBQ2xDLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUE7SUFFbkMsZ0NBQWdDO0lBQ2hDLE1BQU0sS0FBSyxHQUFnQixFQUFFLENBQUE7SUFFN0IsNENBQTRDO0lBQzVDLDBDQUEwQztJQUMxQyxJQUFJLE1BQU0sR0FBRyxDQUFDLENBQUE7SUFFZDs7Ozs7T0FLRztJQUNILFNBQVMsWUFBWSxDQUFDLElBQVksRUFBRSxPQUFlO1FBQ2pELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxHQUFHLElBQUksR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFBO0lBQy9FLENBQUM7SUFFRCxrQ0FBa0M7SUFDbEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUN6QyxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFFeEIsK0RBQStEO1FBQy9ELElBQUksSUFBSSxLQUFLLEVBQUU7WUFBRSxTQUFRO1FBRXpCLDRFQUE0RTtRQUM1RSw2Q0FBNkM7UUFDN0MsTUFBTSxVQUFVLEdBQUcsWUFBWSxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQTtRQUVqRCxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ2YsT0FBTyxJQUFJLEtBQUssQ0FDZCxvSEFBb0gsR0FBRyxVQUFVLENBQ2xJLENBQUE7UUFDSCxDQUFD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
|
|
@@ -10,12 +10,6 @@ export declare const IMPORTED_TYPE_REGEX: RegExp;
|
|
|
10
10
|
* Type with resolved level 1 dependencies (does not look for dependencies' own dependencies!)
|
|
11
11
|
*/
|
|
12
12
|
export interface ResolvedTypeDeps {
|
|
13
|
-
/** The original raw type, with import("...") expressions */
|
|
14
|
-
readonly rawType: string;
|
|
15
|
-
/** The resolved type, without imports */
|
|
16
|
-
readonly resolvedType: string;
|
|
17
|
-
/** File from which the type originates */
|
|
18
|
-
readonly relativeFilePath: string;
|
|
19
13
|
/**
|
|
20
14
|
* The type dependencies used by the resolved type
|
|
21
15
|
* A collection of scripts' relative paths mapped with the list of types imported from them
|
|
@@ -26,6 +20,12 @@ export interface ResolvedTypeDeps {
|
|
|
26
20
|
* They may be either local types (declared in the same file than the one analyzed) or globally-defined types
|
|
27
21
|
*/
|
|
28
22
|
readonly localTypes: string[];
|
|
23
|
+
/** The original raw type, with import("...") expressions */
|
|
24
|
+
readonly rawType: string;
|
|
25
|
+
/** File from which the type originates */
|
|
26
|
+
readonly relativeFilePath: string;
|
|
27
|
+
/** The resolved type, without imports */
|
|
28
|
+
readonly resolvedType: string;
|
|
29
29
|
}
|
|
30
30
|
/**
|
|
31
31
|
* Resolve the dependencies of a TS-Morph analyzed type
|
|
@@ -23,8 +23,8 @@ function resolveTypeDependencies(type, relativeFilePath, absoluteSrcPath) {
|
|
|
23
23
|
if (path.isAbsolute(relativeFilePath)) {
|
|
24
24
|
(0, logging_1.unreachable)('Internal error: got absolute file path in type dependencies resolver, when expecting a relative one (got {magentaBright})', relativeFilePath);
|
|
25
25
|
}
|
|
26
|
-
|
|
27
|
-
|
|
26
|
+
const dependencies = new Map();
|
|
27
|
+
const localTypes = [];
|
|
28
28
|
/** Resolved type (without import statements) */
|
|
29
29
|
const resolvedType = rawType.replace(exports.IMPORTED_TYPE_REGEX, (_, matchedFilePath, type) => {
|
|
30
30
|
const filePath = path.isAbsolute(matchedFilePath) ? path.relative(absoluteSrcPath, matchedFilePath) : matchedFilePath;
|
|
@@ -83,4 +83,4 @@ function normalizeExternalFilePath(importedFilePath) {
|
|
|
83
83
|
return `_external${level}/${importedFilePath}`;
|
|
84
84
|
}
|
|
85
85
|
exports.normalizeExternalFilePath = normalizeExternalFilePath;
|
|
86
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZWRlcHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYW5hbHl6ZXIvdHlwZWRlcHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOztHQUVHOzs7QUFFSCw2QkFBNEI7QUFJNUIsd0NBQXdDO0FBRXhDOztHQUVHO0FBQ1UsUUFBQSxtQkFBbUIsR0FBRyxrREFBa0QsQ0FBQTtBQTRCckY7Ozs7OztHQU1HO0FBQ0gsU0FBZ0IsdUJBQXVCLENBQUMsSUFBbUIsRUFBRSxnQkFBd0IsRUFBRSxlQUF1QjtJQUM1RyxxRUFBcUU7SUFDckUsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFBO0lBRTlCLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUM7UUFDdEMsSUFBQSxxQkFBVyxFQUNULDJIQUEySCxFQUMzSCxnQkFBZ0IsQ0FDakIsQ0FBQTtJQUNILENBQUM7SUFFRCxNQUFNLFlBQVksR0FBcUMsSUFBSSxHQUFHLEVBQUUsQ0FBQTtJQUNoRSxNQUFNLFVBQVUsR0FBbUMsRUFBRSxDQUFBO0lBRXJELGdEQUFnRDtJQUNoRCxNQUFNLFlBQVksR0FBcUMsT0FBTyxDQUFDLE9BQU8sQ0FBQywyQkFBbUIsRUFBRSxDQUFDLENBQUMsRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLEVBQUU7UUFDdkgsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLEVBQUUsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQTtRQUVySCxNQUFNLElBQUksR0FBRyxZQUFZLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBRXZDLElBQUksSUFBSSxFQUFFLENBQUM7WUFDVCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUN6QixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO1lBQ2pCLENBQUM7UUFDSCxDQUFDO2FBQU0sQ0FBQztZQUNOLFlBQVksQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtRQUNwQyxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDLENBQUMsQ0FBQTtJQUVGLElBQUksWUFBWSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1FBQ3JDLElBQUEscUJBQVcsRUFBQyx5RUFBeUUsRUFBRSxhQUFhLEVBQUUsWUFBWSxDQUFDLENBQUE7SUFDckgsQ0FBQztJQUVELEtBQUssTUFBTSxPQUFPLElBQUksWUFBWSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7UUFDMUMsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDN0IsSUFBQSxxQkFBVyxFQUNULHFKQUFxSixFQUNySixJQUFJLENBQUMsT0FBTyxFQUFFLEVBQ2QsT0FBTyxDQUNSLENBQUE7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU87UUFDTCxPQUFPO1FBQ1AsZ0JBQWdCO1FBQ2hCLFlBQVk7UUFDWixZQUFZO1FBQ1osVUFBVTtLQUNYLENBQUE7QUFDSCxDQUFDO0FBcERELDBEQW9EQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBZ0IscUJBQXFCLENBQUMsSUFBbUI7SUFDdkQsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLDJCQUFtQixFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0FBQ25GLENBQUM7QUFGRCxzREFFQztBQUVEOzs7R0FHRztBQUNILFNBQWdCLHlCQUF5QixDQUFDLGdCQUF3QjtJQUNoRSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGdCQUFnQixDQUFDLENBQUE7SUFFbkQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3hDLE9BQU8sZ0JBQWdCLENBQUE7SUFDekIsQ0FBQztJQUVELElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQTtJQUViLE9BQU8sZ0JBQWdCLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDMUMsS0FBSyxFQUFFLENBQUE7UUFDUCxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDL0MsQ0FBQztJQUVELE9BQU8sWUFBWSxLQUFLLElBQUksZ0JBQWdCLEVBQUUsQ0FBQTtBQUNoRCxDQUFDO0FBZkQsOERBZUMifQ==
|
package/build/bin.js
CHANGED
|
@@ -15,25 +15,21 @@ const analyzer_1 = require("./analyzer");
|
|
|
15
15
|
const config_1 = require("./config");
|
|
16
16
|
const generator_1 = require("./generator");
|
|
17
17
|
const logging_1 = require("./logging");
|
|
18
|
+
const rtk_query_generator_1 = require("./rtk-query-generator");
|
|
18
19
|
function main() {
|
|
19
20
|
return __awaiter(this, void 0, void 0, function* () {
|
|
20
21
|
const started = Date.now();
|
|
21
22
|
process.chdir(path.dirname(path.resolve(config_1.configPath)));
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
yield (0, generator_1.default)(config_1.config, sdkContent);
|
|
30
|
-
break;
|
|
31
|
-
default:
|
|
32
|
-
console.error('ERROR: Unknown action provided (must be either "--analyze" or "--generate")');
|
|
33
|
-
process.exit(1);
|
|
23
|
+
const sdkContent = yield (0, analyzer_1.analyzerCli)(config_1.config);
|
|
24
|
+
const outputType = process.argv[3];
|
|
25
|
+
if (outputType === '--generate') {
|
|
26
|
+
yield (0, generator_1.default)(config_1.config, sdkContent);
|
|
27
|
+
}
|
|
28
|
+
if (outputType === '--generate-rtk') {
|
|
29
|
+
yield (0, rtk_query_generator_1.default)(config_1.config, sdkContent);
|
|
34
30
|
}
|
|
35
31
|
(0, logging_1.println)('{green}', '@ Done in ' + ((Date.now() - started) / 1000).toFixed(2) + 's');
|
|
36
32
|
});
|
|
37
33
|
}
|
|
38
34
|
main();
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmluLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2Jpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFFQSw2QkFBNEI7QUFFNUIseUNBQXdDO0FBQ3hDLHFDQUE2QztBQUM3QywyQ0FBMkM7QUFDM0MsdUNBQW1DO0FBQ25DLCtEQUE2RDtBQUU3RCxTQUFlLElBQUk7O1FBQ2pCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQTtRQUUxQixPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxtQkFBVSxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBRXJELE1BQU0sVUFBVSxHQUFHLE1BQU0sSUFBQSxzQkFBVyxFQUFDLGVBQU0sQ0FBQyxDQUFBO1FBRTVDLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFFbEMsSUFBSSxVQUFVLEtBQUssWUFBWSxFQUFFLENBQUM7WUFDaEMsTUFBTSxJQUFBLG1CQUFpQixFQUFDLGVBQU0sRUFBRSxVQUFVLENBQUMsQ0FBQTtRQUM3QyxDQUFDO1FBRUQsSUFBSSxVQUFVLEtBQUssZ0JBQWdCLEVBQUUsQ0FBQztZQUNwQyxNQUFNLElBQUEsNkJBQXlCLEVBQUMsZUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFBO1FBQ3JELENBQUM7UUFFRCxJQUFBLGlCQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQTtJQUNyRixDQUFDO0NBQUE7QUFFRCxJQUFJLEVBQUUsQ0FBQSJ9
|
package/build/config.d.ts
CHANGED
|
@@ -3,42 +3,52 @@
|
|
|
3
3
|
* For details on what these options do, see the project's README
|
|
4
4
|
*/
|
|
5
5
|
export interface Config {
|
|
6
|
-
/** Enable verbose mode */
|
|
7
|
-
readonly verbose?: boolean;
|
|
8
|
-
/** Disable colored output */
|
|
9
|
-
readonly noColor?: boolean;
|
|
10
6
|
/** Path to the API's source directory */
|
|
11
7
|
readonly apiInputPath: string;
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
8
|
+
readonly controllerOutput?: {
|
|
9
|
+
exportName?: {
|
|
10
|
+
addSuffix?: string;
|
|
11
|
+
removeSuffix?: string;
|
|
12
|
+
};
|
|
13
|
+
fileName?: {
|
|
14
|
+
addSuffix?: string;
|
|
15
|
+
removeSuffix?: string;
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
/** If the SDK interface file does not exist yet, create one automatically (enabled by default) */
|
|
19
|
+
readonly generateDefaultSdkInterface?: boolean;
|
|
20
|
+
/** Write generation timestamp in each TypeScript file (enabled by default) */
|
|
21
|
+
readonly generateTimestamps?: boolean;
|
|
18
22
|
/** Show a JSON output */
|
|
19
23
|
readonly jsonOutput?: string;
|
|
20
24
|
/** Prettify the JSON output */
|
|
21
25
|
readonly jsonPrettyOutput?: boolean;
|
|
22
|
-
/**
|
|
23
|
-
readonly
|
|
26
|
+
/** List of magic types */
|
|
27
|
+
readonly magicTypes?: MagicType[];
|
|
28
|
+
/** Disable colored output */
|
|
29
|
+
readonly noColor?: boolean;
|
|
30
|
+
/** If the output directory already exists, overwrite it (enabled by default) */
|
|
31
|
+
readonly overwriteOldOutputDir?: boolean;
|
|
24
32
|
/** Path to Prettier's configuration file */
|
|
25
33
|
readonly prettierConfig?: string;
|
|
34
|
+
/** Prettify the generated files (enabled by default) */
|
|
35
|
+
readonly prettify?: boolean;
|
|
36
|
+
/** Path to the SDK interface file */
|
|
37
|
+
readonly sdkInterfacePath: string;
|
|
38
|
+
/** Path to generate the SDK at */
|
|
39
|
+
readonly sdkOutputPath: string;
|
|
26
40
|
/** Path to custom tsconfig file */
|
|
27
41
|
readonly tsconfigFile?: string;
|
|
28
|
-
/**
|
|
29
|
-
readonly
|
|
30
|
-
/** If the SDK interface file does not exist yet, create one automatically (enabled by default) */
|
|
31
|
-
readonly generateDefaultSdkInterface?: boolean;
|
|
32
|
-
/** Write generation timestamp in each TypeScript file (enabled by default) */
|
|
33
|
-
readonly generateTimestamps?: boolean;
|
|
42
|
+
/** Enable verbose mode */
|
|
43
|
+
readonly verbose?: boolean;
|
|
34
44
|
}
|
|
35
45
|
/**
|
|
36
46
|
* Magic type used to replace a non-compatible type in the generated SDK
|
|
37
47
|
*/
|
|
38
48
|
export interface MagicType {
|
|
39
49
|
readonly nodeModuleFilePath: string;
|
|
40
|
-
readonly typeName: string;
|
|
41
50
|
readonly placeholderContent: string;
|
|
51
|
+
readonly typeName: string;
|
|
42
52
|
}
|
|
43
53
|
export declare const configPath: string;
|
|
44
54
|
export declare const config: Config;
|
package/build/config.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.config = exports.configPath = void 0;
|
|
4
|
-
const chalk = require("chalk");
|
|
5
4
|
const fs = require("fs");
|
|
6
5
|
const path = require("path");
|
|
6
|
+
const chalk = require("chalk");
|
|
7
7
|
/**
|
|
8
8
|
* Load an existing configuration file and decode it
|
|
9
9
|
* @param configPath
|
|
@@ -28,4 +28,4 @@ if (!exports.configPath) {
|
|
|
28
28
|
process.exit(2);
|
|
29
29
|
}
|
|
30
30
|
exports.config = loadConfigFile(exports.configPath);
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5QkFBd0I7QUFDeEIsNkJBQTRCO0FBRTVCLCtCQUErQjtBQXFFL0I7OztHQUdHO0FBQ0gsU0FBUyxjQUFjLENBQUMsVUFBa0I7SUFDeEMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztRQUMvQixPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMscUNBQXFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ3hHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDakIsQ0FBQztJQUVELE1BQU0sSUFBSSxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxDQUFBO0lBRWhELElBQUksQ0FBQztRQUNILE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUN6QixDQUFDO0lBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNYLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxzQ0FBc0MsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ3BFLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDakIsQ0FBQztBQUNILENBQUM7QUFFWSxRQUFBLFVBQVUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO0FBRXpDLElBQUksQ0FBQyxrQkFBVSxFQUFFLENBQUM7SUFDaEIsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLGlEQUFpRCxDQUFDLENBQUMsQ0FBQTtJQUMzRSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO0FBQ2pCLENBQUM7QUFFWSxRQUFBLE1BQU0sR0FBRyxjQUFjLENBQUMsa0JBQVUsQ0FBQyxDQUFBIn0=
|
|
@@ -5,20 +5,44 @@ import { SdkController } from '../analyzer/controller';
|
|
|
5
5
|
import { SdkModules } from '../analyzer/controllers';
|
|
6
6
|
import { SdkMethod } from '../analyzer/methods';
|
|
7
7
|
import { SdkMethodParam } from '../analyzer/params';
|
|
8
|
+
export declare function replaceSuffix(value: string, { addSuffix, removeSuffix }: {
|
|
9
|
+
addSuffix?: string;
|
|
10
|
+
removeSuffix?: string;
|
|
11
|
+
}): string;
|
|
12
|
+
export declare function controllerExportName(controller: SdkController): string;
|
|
13
|
+
export declare function controllerFileName(controller: SdkController): {
|
|
14
|
+
ext: string;
|
|
15
|
+
name: string;
|
|
16
|
+
};
|
|
17
|
+
export declare function controllerRelativePath({ controller, inputRelativePath, }: {
|
|
18
|
+
controller: SdkController;
|
|
19
|
+
inputRelativePath: string;
|
|
20
|
+
}): string;
|
|
8
21
|
/**
|
|
9
22
|
* Generate the SDK's module and controllers files
|
|
10
23
|
* @param modules
|
|
11
24
|
* @returns
|
|
12
25
|
*/
|
|
13
|
-
export declare function generateSdkModules(modules
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
26
|
+
export declare function generateSdkModules({ inputRelativePath, modules, }: {
|
|
27
|
+
inputRelativePath: string;
|
|
28
|
+
modules: SdkModules;
|
|
29
|
+
}): Map<string, string>;
|
|
30
|
+
export declare function generateController({ controller, inputRelativePath, moduleName, }: {
|
|
31
|
+
controller: SdkController;
|
|
32
|
+
inputRelativePath: string;
|
|
33
|
+
moduleName: string;
|
|
34
|
+
}): string;
|
|
35
|
+
export declare function generateSdkMethod({ controller, inputRelativePath, method, }: {
|
|
36
|
+
controller: SdkController;
|
|
37
|
+
inputRelativePath: string;
|
|
38
|
+
method: SdkMethod;
|
|
39
|
+
}): string;
|
|
40
|
+
export declare function generateSdkMethodSignature(method: SdkMethod): string;
|
|
17
41
|
export declare function generateSdkMethodParams(method: SdkMethod): string;
|
|
18
42
|
/**
|
|
19
43
|
* Generate a request call to Central for the generated files
|
|
20
44
|
* @param method
|
|
21
45
|
* @returns
|
|
22
46
|
*/
|
|
23
|
-
export declare function generateSdkMethodBody(method: SdkMethod
|
|
47
|
+
export declare function generateSdkMethodBody(method: SdkMethod): string;
|
|
24
48
|
export declare function methodParamsToString(params: SdkMethodParam): string;
|