@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/route.js
CHANGED
|
@@ -3,7 +3,13 @@
|
|
|
3
3
|
* @file Analyzer for the source API's routes in controller methods
|
|
4
4
|
*/
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
6
|
+
exports.analyzeUri = analyzeUri;
|
|
7
|
+
exports.routePartIsParam = routePartIsParam;
|
|
8
|
+
exports.paramsFromRoute = paramsFromRoute;
|
|
9
|
+
exports.unparseRoute = unparseRoute;
|
|
10
|
+
exports.debugUri = debugUri;
|
|
11
|
+
exports.resolveRoute = resolveRoute;
|
|
12
|
+
exports.resolveRouteWith = resolveRouteWith;
|
|
7
13
|
/**
|
|
8
14
|
* Analyze an URI path
|
|
9
15
|
* @param uriPath The URI path to analyze
|
|
@@ -60,7 +66,6 @@ function analyzeUri(uriPath) {
|
|
|
60
66
|
parts,
|
|
61
67
|
};
|
|
62
68
|
}
|
|
63
|
-
exports.analyzeUri = analyzeUri;
|
|
64
69
|
/**
|
|
65
70
|
* Get the named parameters of a parsed route
|
|
66
71
|
* @param route
|
|
@@ -68,11 +73,9 @@ exports.analyzeUri = analyzeUri;
|
|
|
68
73
|
function routePartIsParam(part) {
|
|
69
74
|
return 'param' in part;
|
|
70
75
|
}
|
|
71
|
-
exports.routePartIsParam = routePartIsParam;
|
|
72
76
|
function paramsFromRoute(route) {
|
|
73
77
|
return route.parts.filter(routePartIsParam).map((part) => part.param);
|
|
74
78
|
}
|
|
75
|
-
exports.paramsFromRoute = paramsFromRoute;
|
|
76
79
|
/**
|
|
77
80
|
* Convert a route back to its original string
|
|
78
81
|
* @param route
|
|
@@ -80,14 +83,12 @@ exports.paramsFromRoute = paramsFromRoute;
|
|
|
80
83
|
function unparseRoute(route) {
|
|
81
84
|
return (route.isRoot ? '/' : '') + route.parts.map((part) => ('segment' in part ? part.segment : ':' + part.param)).join('/');
|
|
82
85
|
}
|
|
83
|
-
exports.unparseRoute = unparseRoute;
|
|
84
86
|
/**
|
|
85
87
|
* Pretty-print a route
|
|
86
88
|
*/
|
|
87
89
|
function debugUri(route, color) {
|
|
88
90
|
return (route.isRoot ? '/' : '') + route.parts.map((part) => ('segment' in part ? part.segment : color(':' + part.param))).join('/');
|
|
89
91
|
}
|
|
90
|
-
exports.debugUri = debugUri;
|
|
91
92
|
/**
|
|
92
93
|
* Resolve a route by providing its required parameters
|
|
93
94
|
* @param route
|
|
@@ -109,7 +110,6 @@ function resolveRoute(route, params) {
|
|
|
109
110
|
}
|
|
110
111
|
return (route.isRoot ? '/' : '') + uri.join('/');
|
|
111
112
|
}
|
|
112
|
-
exports.resolveRoute = resolveRoute;
|
|
113
113
|
/**
|
|
114
114
|
* Resolve a route by providing its required parameters through a callback
|
|
115
115
|
* @param route
|
|
@@ -133,5 +133,4 @@ function resolveRouteWith(route, paramsProvider) {
|
|
|
133
133
|
}
|
|
134
134
|
return (route.isRoot ? '/' : '') + uri.join('/');
|
|
135
135
|
}
|
|
136
|
-
|
|
137
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYW5hbHl6ZXIvcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOztHQUVHOzs7QUFrQkg7OztHQUdHO0FBQ0gsU0FBZ0IsVUFBVSxDQUFDLE9BQWU7SUFDeEMsa0NBQWtDO0lBQ2xDLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUE7SUFFbkMsZ0NBQWdDO0lBQ2hDLE1BQU0sS0FBSyxHQUFnQixFQUFFLENBQUE7SUFFN0IsNENBQTRDO0lBQzVDLDBDQUEwQztJQUMxQyxJQUFJLE1BQU0sR0FBRyxDQUFDLENBQUE7SUFFZDs7Ozs7T0FLRztJQUNILFNBQVMsWUFBWSxDQUFDLElBQVksRUFBRSxPQUFlO1FBQ2pELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxHQUFHLElBQUksR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFBO0lBQy9FLENBQUM7SUFFRCxrQ0FBa0M7SUFDbEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUN6QyxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFFeEIsK0RBQStEO1FBQy9ELElBQUksSUFBSSxLQUFLLEVBQUU7WUFBRSxTQUFRO1FBRXpCLDRFQUE0RTtRQUM1RSw2Q0FBNkM7UUFDN0MsTUFBTSxVQUFVLEdBQUcsWUFBWSxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQTtRQUVqRCxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ2YsT0FBTyxJQUFJLEtBQUssQ0FDZCxvSEFBb0gsR0FBRyxVQUFVLENBQ2xJLENBQUE7UUFDSCxDQUFDO1FBRUQseUNBQXlDO1FBQ3pDLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3pCLDZDQUE2QztZQUM3QyxNQUFNLFFBQVEsR0FBRyxZQUFZLENBQUMsSUFBSSxFQUFFLGdCQUFnQixDQUFDLENBQUE7WUFFckQsSUFBSSxRQUFRLEVBQUUsQ0FBQztnQkFDYixPQUFPLElBQUksS0FBSyxDQUFDLHlEQUF5RCxHQUFHLFFBQVEsQ0FBQyxDQUFBO1lBQ3hGLENBQUM7WUFFRCxxQkFBcUI7WUFDckIsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUN2QyxDQUFDO2FBQU0sQ0FBQztZQUNOLHdCQUF3QjtZQUN4QixLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUE7UUFDL0IsQ0FBQztRQUVELHNDQUFzQztRQUN0QyxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUE7SUFDM0IsQ0FBQztJQUVELFdBQVc7SUFDWCxPQUFPO1FBQ0wsTUFBTSxFQUFFLE9BQU8sQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDO1FBQy9CLEtBQUs7S0FDTixDQUFBO0FBQ0gsQ0FBQztBQS9ERCxnQ0ErREM7QUFFRDs7O0dBR0c7QUFDSCxTQUFnQixnQkFBZ0IsQ0FBQyxJQUFlO0lBQzlDLE9BQU8sT0FBTyxJQUFJLElBQUksQ0FBQTtBQUN4QixDQUFDO0FBRkQsNENBRUM7QUFFRCxTQUFnQixlQUFlLENBQUMsS0FBWTtJQUMxQyxPQUFPLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7QUFDdkUsQ0FBQztBQUZELDBDQUVDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBZ0IsWUFBWSxDQUFDLEtBQVk7SUFDdkMsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtBQUMvSCxDQUFDO0FBRkQsb0NBRUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLFFBQVEsQ0FBQyxLQUFZLEVBQUUsS0FBOEI7SUFDbkUsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtBQUN0SSxDQUFDO0FBRkQsNEJBRUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0IsWUFBWSxDQUFDLEtBQVksRUFBRSxNQUFrQztJQUMzRSxNQUFNLEdBQUcsR0FBYSxFQUFFLENBQUE7SUFFeEIsS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDL0IsSUFBSSxTQUFTLElBQUksSUFBSSxFQUFFLENBQUM7WUFDdEIsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUE7WUFDdEIsaURBQWlEO1FBQ25ELENBQUM7YUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUM5QyxPQUFPLElBQUksS0FBSyxDQUFDLDBCQUEwQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUMzRCxDQUFDO2FBQU0sQ0FBQztZQUNOLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFBO1FBQzlCLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtBQUNsRCxDQUFDO0FBZkQsb0NBZUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0IsZ0JBQWdCLENBQUMsS0FBWSxFQUFFLGNBQWdEO0lBQzdGLE1BQU0sR0FBRyxHQUFhLEVBQUUsQ0FBQTtJQUV4QixLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUMvQixJQUFJLFNBQVMsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUN0QixHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUN4QixDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sS0FBSyxHQUFHLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7WUFFeEMsSUFBSSxLQUFLLEtBQUssSUFBSSxFQUFFLENBQUM7Z0JBQ25CLE9BQU8sSUFBSSxLQUFLLENBQUMsMEJBQTBCLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO1lBQzNELENBQUM7aUJBQU0sQ0FBQztnQkFDTixHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO1lBQ2pCLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7QUFDbEQsQ0FBQztBQWxCRCw0Q0FrQkMifQ==
|
|
136
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYW5hbHl6ZXIvcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOztHQUVHOzs7Ozs7Ozs7QUFrQkg7OztHQUdHO0FBQ0gsb0JBQTJCLE9BQWU7SUFDeEMsa0NBQWtDO0lBQ2xDLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUE7SUFFbkMsZ0NBQWdDO0lBQ2hDLE1BQU0sS0FBSyxHQUFnQixFQUFFLENBQUE7SUFFN0IsNENBQTRDO0lBQzVDLDBDQUEwQztJQUMxQyxJQUFJLE1BQU0sR0FBRyxDQUFDLENBQUE7SUFFZDs7Ozs7T0FLRztJQUNILFNBQVMsWUFBWSxDQUFDLElBQVksRUFBRSxPQUFlO1FBQ2pELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxHQUFHLElBQUksR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFBO0lBQy9FLENBQUM7SUFFRCxrQ0FBa0M7SUFDbEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUN6QyxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFFeEIsK0RBQStEO1FBQy9ELElBQUksSUFBSSxLQUFLLEVBQUU7WUFBRSxTQUFRO1FBRXpCLDRFQUE0RTtRQUM1RSw2Q0FBNkM7UUFDN0MsTUFBTSxVQUFVLEdBQUcsWUFBWSxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQTtRQUVqRCxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ2YsT0FBTyxJQUFJLEtBQUssQ0FDZCxvSEFBb0gsR0FBRyxVQUFVLENBQ2xJLENBQUE7UUFDSCxDQUFDO1FB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
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Engine-independent description of the analyzed SDK
|
|
3
|
+
*
|
|
4
|
+
* Everything in this file is plain data and pure helpers: it must not import any TypeScript
|
|
5
|
+
* compiler at runtime, so the generators and the fast analysis engines can load it cheaply.
|
|
6
|
+
*/
|
|
7
|
+
import type { Route } from './route';
|
|
8
|
+
import type { ResolvedTypeDeps } from './typedeps';
|
|
9
|
+
export interface SdkContent {
|
|
10
|
+
readonly modules: SdkModules;
|
|
11
|
+
readonly types: TypesExtractorContent;
|
|
12
|
+
}
|
|
13
|
+
/** Modules mapped to their controllers (keyed by class name) */
|
|
14
|
+
export type SdkModules = Map<string, Map<string, SdkController>>;
|
|
15
|
+
/**
|
|
16
|
+
* SDK interface of a controller
|
|
17
|
+
*/
|
|
18
|
+
export interface SdkController {
|
|
19
|
+
/** Name of the controller's class, camel cased */
|
|
20
|
+
readonly className: string;
|
|
21
|
+
/** Controller's methods */
|
|
22
|
+
readonly methods: SdkMethod[];
|
|
23
|
+
/** Original controller file's path */
|
|
24
|
+
readonly path: string;
|
|
25
|
+
/** Name the controller is registered under */
|
|
26
|
+
readonly registrationName: string;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* SDK interface for a single controller's method
|
|
30
|
+
*/
|
|
31
|
+
export interface SdkMethod {
|
|
32
|
+
/** Method's HTTP method (e.g. GET / POST) */
|
|
33
|
+
readonly httpMethod: SdkHttpMethod;
|
|
34
|
+
/** Method's name */
|
|
35
|
+
readonly name: string;
|
|
36
|
+
/** Method's parameters */
|
|
37
|
+
readonly params: SdkMethodParams;
|
|
38
|
+
/** Method's return type with resolved dependencies */
|
|
39
|
+
readonly returnType: ResolvedTypeDeps;
|
|
40
|
+
/** Method's parsed route */
|
|
41
|
+
readonly route: Route;
|
|
42
|
+
/** Method's URI path */
|
|
43
|
+
readonly uriPath: string;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* HTTP method of a controller's method
|
|
47
|
+
*/
|
|
48
|
+
export declare enum SdkHttpMethod {
|
|
49
|
+
Delete = "DELETE",
|
|
50
|
+
Get = "GET",
|
|
51
|
+
Patch = "PATCH",
|
|
52
|
+
Post = "POST",
|
|
53
|
+
Put = "PUT"
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Type of a parameter that must be passed to an SDK method: Body, Query or Route Param
|
|
57
|
+
* Supports accessing parameters individually by key or as a whole object
|
|
58
|
+
*
|
|
59
|
+
* EXAMPLE
|
|
60
|
+
*
|
|
61
|
+
* Controller Method:
|
|
62
|
+
*
|
|
63
|
+
* getStuff(@Query('email') email: string, @Query('companyId'): CompanyId)
|
|
64
|
+
*
|
|
65
|
+
* SDK Method Param:
|
|
66
|
+
* { email: string, companyId: CompanyId }
|
|
67
|
+
*
|
|
68
|
+
* OR
|
|
69
|
+
*
|
|
70
|
+
* Controller Method:
|
|
71
|
+
* type EmailAndCompanyId = { email: string, companyId: CompanyId }
|
|
72
|
+
* getStuff(@Query(): EmailAndCompanyId)
|
|
73
|
+
*
|
|
74
|
+
* SDK Method Param:
|
|
75
|
+
* EmailAndCompanyId
|
|
76
|
+
*/
|
|
77
|
+
export type SdkMethodParam = SdkMethodParamMap | ResolvedTypeDeps | null;
|
|
78
|
+
export type SdkMethodParamMap = {
|
|
79
|
+
[key: string]: ResolvedTypeDeps;
|
|
80
|
+
};
|
|
81
|
+
export declare const isParamResolvedType: (param: SdkMethodParam) => param is ResolvedTypeDeps;
|
|
82
|
+
export declare const getParamResolvedTypes: (param: SdkMethodParam) => ResolvedTypeDeps[];
|
|
83
|
+
/**
|
|
84
|
+
* SDK interface for a controller's method's parameters
|
|
85
|
+
*/
|
|
86
|
+
export interface SdkMethodParams {
|
|
87
|
+
bodyParams: SdkMethodParam;
|
|
88
|
+
/** Engine-specific analysis context (compiler nodes); never serialized */
|
|
89
|
+
context: unknown;
|
|
90
|
+
queryParams: SdkMethodParam;
|
|
91
|
+
routeParams: SdkMethodParam;
|
|
92
|
+
}
|
|
93
|
+
export declare enum ArgDecorator {
|
|
94
|
+
Body = "Body",
|
|
95
|
+
Param = "Param",
|
|
96
|
+
Query = "Query"
|
|
97
|
+
}
|
|
98
|
+
/** Valid extensions for TypeScript module files */
|
|
99
|
+
export declare const MODULE_EXTENSIONS: string[];
|
|
100
|
+
/**
|
|
101
|
+
* Location of an imported type
|
|
102
|
+
*/
|
|
103
|
+
export interface TypeLocation {
|
|
104
|
+
readonly relativePathNoExt: string;
|
|
105
|
+
readonly typename: string;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Location of an imported type after figuring out its extension
|
|
109
|
+
*/
|
|
110
|
+
export interface TypeLocationWithExt extends TypeLocation {
|
|
111
|
+
readonly relativePath: string;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Extracted imported type
|
|
115
|
+
*/
|
|
116
|
+
export interface ExtractedType extends TypeLocationWithExt {
|
|
117
|
+
/** Type's declaration */
|
|
118
|
+
readonly content: string;
|
|
119
|
+
/** Types this one depends on */
|
|
120
|
+
readonly dependencies: TypeLocationWithExt[];
|
|
121
|
+
/** Type parameters (e.g. <T>) */
|
|
122
|
+
readonly typeParams: string[];
|
|
123
|
+
}
|
|
124
|
+
export type TypesExtractorContent = Map<string, Map<string, ExtractedType>>;
|
|
125
|
+
/**
|
|
126
|
+
* Locate the files containing a list of a resolved types
|
|
127
|
+
* @param resolvedTypes
|
|
128
|
+
* @returns
|
|
129
|
+
*/
|
|
130
|
+
export declare function locateTypesFile(resolvedTypes: Array<ResolvedTypeDeps>): TypeLocation[];
|
|
131
|
+
/**
|
|
132
|
+
* Flatten a tree of resolved type dependencies
|
|
133
|
+
* @param sdkModules
|
|
134
|
+
* @returns
|
|
135
|
+
*/
|
|
136
|
+
export declare function flattenSdkResolvedTypes(sdkModules: SdkModules): ResolvedTypeDeps[];
|
|
137
|
+
/**
|
|
138
|
+
* Convert a string to camel case
|
|
139
|
+
* @param str
|
|
140
|
+
*/
|
|
141
|
+
export declare function camelcase(str: string): string;
|
|
142
|
+
/**
|
|
143
|
+
* Serialize analyzed SDK content to JSON
|
|
144
|
+
* Maps are converted to plain objects, and engine-specific analysis contexts are omitted.
|
|
145
|
+
*/
|
|
146
|
+
export declare function serializeSdkContent(content: SdkContent, pretty: boolean): string;
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @file Engine-independent description of the analyzed SDK
|
|
4
|
+
*
|
|
5
|
+
* Everything in this file is plain data and pure helpers: it must not import any TypeScript
|
|
6
|
+
* compiler at runtime, so the generators and the fast analysis engines can load it cheaply.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.MODULE_EXTENSIONS = exports.ArgDecorator = exports.getParamResolvedTypes = exports.isParamResolvedType = exports.SdkHttpMethod = void 0;
|
|
10
|
+
exports.locateTypesFile = locateTypesFile;
|
|
11
|
+
exports.flattenSdkResolvedTypes = flattenSdkResolvedTypes;
|
|
12
|
+
exports.camelcase = camelcase;
|
|
13
|
+
exports.serializeSdkContent = serializeSdkContent;
|
|
14
|
+
/**
|
|
15
|
+
* HTTP method of a controller's method
|
|
16
|
+
*/
|
|
17
|
+
var SdkHttpMethod;
|
|
18
|
+
(function (SdkHttpMethod) {
|
|
19
|
+
SdkHttpMethod["Delete"] = "DELETE";
|
|
20
|
+
SdkHttpMethod["Get"] = "GET";
|
|
21
|
+
SdkHttpMethod["Patch"] = "PATCH";
|
|
22
|
+
SdkHttpMethod["Post"] = "POST";
|
|
23
|
+
SdkHttpMethod["Put"] = "PUT";
|
|
24
|
+
})(SdkHttpMethod || (exports.SdkHttpMethod = SdkHttpMethod = {}));
|
|
25
|
+
const isParamResolvedType = (param) => {
|
|
26
|
+
if (param === null) {
|
|
27
|
+
return false;
|
|
28
|
+
}
|
|
29
|
+
return 'rawType' in param && 'resolvedType' in param && 'relativeFilePath' in param && 'dependencies' in param && 'localTypes' in param;
|
|
30
|
+
};
|
|
31
|
+
exports.isParamResolvedType = isParamResolvedType;
|
|
32
|
+
const getParamResolvedTypes = (param) => {
|
|
33
|
+
if (param === null) {
|
|
34
|
+
return [];
|
|
35
|
+
}
|
|
36
|
+
if ((0, exports.isParamResolvedType)(param)) {
|
|
37
|
+
return [param];
|
|
38
|
+
}
|
|
39
|
+
return Object.values(param);
|
|
40
|
+
};
|
|
41
|
+
exports.getParamResolvedTypes = getParamResolvedTypes;
|
|
42
|
+
var ArgDecorator;
|
|
43
|
+
(function (ArgDecorator) {
|
|
44
|
+
ArgDecorator["Body"] = "Body";
|
|
45
|
+
ArgDecorator["Param"] = "Param";
|
|
46
|
+
ArgDecorator["Query"] = "Query";
|
|
47
|
+
})(ArgDecorator || (exports.ArgDecorator = ArgDecorator = {}));
|
|
48
|
+
/** Valid extensions for TypeScript module files */
|
|
49
|
+
exports.MODULE_EXTENSIONS = ['.ts', '.d.ts', '.tsx', '.d.tsx', '.js', '.jsx'];
|
|
50
|
+
/**
|
|
51
|
+
* Locate the files containing a list of a resolved types
|
|
52
|
+
* @param resolvedTypes
|
|
53
|
+
* @returns
|
|
54
|
+
*/
|
|
55
|
+
function locateTypesFile(resolvedTypes) {
|
|
56
|
+
const out = new Array();
|
|
57
|
+
for (const resolved of resolvedTypes) {
|
|
58
|
+
for (const [file, types] of resolved.dependencies) {
|
|
59
|
+
for (const typename of types) {
|
|
60
|
+
if (!out.find((loc) => loc.typename === typename && loc.relativePathNoExt === file)) {
|
|
61
|
+
out.push({ typename, relativePathNoExt: file });
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
for (const typename of resolved.localTypes) {
|
|
66
|
+
if (!out.find((loc) => loc.typename === typename && loc.relativePathNoExt === resolved.relativeFilePath)) {
|
|
67
|
+
out.push({ typename, relativePathNoExt: resolved.relativeFilePath });
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
return out;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Flatten a tree of resolved type dependencies
|
|
75
|
+
* @param sdkModules
|
|
76
|
+
* @returns
|
|
77
|
+
*/
|
|
78
|
+
function flattenSdkResolvedTypes(sdkModules) {
|
|
79
|
+
const flattened = new Array();
|
|
80
|
+
for (const module of sdkModules.values()) {
|
|
81
|
+
for (const controller of module.values()) {
|
|
82
|
+
for (const method of controller.methods.values()) {
|
|
83
|
+
const { bodyParams, queryParams, routeParams } = method.params;
|
|
84
|
+
flattened.push(method.returnType);
|
|
85
|
+
flattened.push(...(0, exports.getParamResolvedTypes)(routeParams));
|
|
86
|
+
flattened.push(...(0, exports.getParamResolvedTypes)(queryParams));
|
|
87
|
+
flattened.push(...(0, exports.getParamResolvedTypes)(bodyParams));
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
return flattened;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Convert a string to camel case
|
|
95
|
+
* @param str
|
|
96
|
+
*/
|
|
97
|
+
function camelcase(str) {
|
|
98
|
+
return str
|
|
99
|
+
.split(/[^a-zA-Z0-9_]/g)
|
|
100
|
+
.map((p, i) => {
|
|
101
|
+
const f = p.substr(0, 1);
|
|
102
|
+
return (i === 0 ? f.toLocaleLowerCase() : f.toLocaleUpperCase()) + p.substr(1);
|
|
103
|
+
})
|
|
104
|
+
.join('');
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Serialize analyzed SDK content to JSON
|
|
108
|
+
* Maps are converted to plain objects, and engine-specific analysis contexts are omitted.
|
|
109
|
+
*/
|
|
110
|
+
function serializeSdkContent(content, pretty) {
|
|
111
|
+
return JSON.stringify(content, function (key, v) {
|
|
112
|
+
if (key === 'context' && isSdkMethodParams(this))
|
|
113
|
+
return undefined;
|
|
114
|
+
return v instanceof Map ? Object.fromEntries(v) : v;
|
|
115
|
+
}, pretty ? 4 : 0);
|
|
116
|
+
}
|
|
117
|
+
function isSdkMethodParams(value) {
|
|
118
|
+
return typeof value === 'object' && value !== null && 'routeParams' in value && 'queryParams' in value && 'bodyParams' in value;
|
|
119
|
+
}
|
|
120
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2RrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FuYWx5emVyL3Nkay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7O0dBS0c7Ozs7Ozs7QUFxREg7O0dBRUc7QUFDSCxJQUFZLGFBTVg7QUFORCxXQUFZLGFBQWE7SUFDdkIsa0NBQWlCLENBQUE7SUFDakIsNEJBQVcsQ0FBQTtJQUNYLGdDQUFlLENBQUE7SUFDZiw4QkFBYSxDQUFBO0lBQ2IsNEJBQVcsQ0FBQTtBQUNiLENBQUMsRUFOVyxhQUFhLGFBQWIsYUFBYSxHQUFiLGFBQWEsUUFNeEI7QUE0Qk0sTUFBTSxtQkFBbUIsR0FBRyxDQUFDLEtBQXFCLEVBQTZCLEVBQUU7SUFDdEYsSUFBSSxLQUFLLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDbkIsT0FBTyxLQUFLLENBQUE7SUFDZCxDQUFDO0lBQ0QsT0FBTyxTQUFTLElBQUksS0FBSyxJQUFJLGNBQWMsSUFBSSxLQUFLLElBQUksa0JBQWtCLElBQUksS0FBSyxJQUFJLGNBQWMsSUFBSSxLQUFLLElBQUksWUFBWSxJQUFJLEtBQUssQ0FBQTtBQUN6SSxDQUFDLENBQUE7QUFMWSxRQUFBLG1CQUFtQixHQUFuQixtQkFBbUIsQ0FLL0I7QUFFTSxNQUFNLHFCQUFxQixHQUFHLENBQUMsS0FBcUIsRUFBc0IsRUFBRTtJQUNqRixJQUFJLEtBQUssS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUNuQixPQUFPLEVBQUUsQ0FBQTtJQUNYLENBQUM7SUFDRCxJQUFJLElBQUEsUUFBQSxtQkFBbUIsRUFBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQy9CLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUNoQixDQUFDO0lBQ0QsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFBO0FBQzdCLENBQUMsQ0FBQTtBQVJZLFFBQUEscUJBQXFCLEdBQXJCLHFCQUFxQixDQVFqQztBQWFELElBQVksWUFJWDtBQUpELFdB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
|
|
@@ -35,6 +35,14 @@ export interface ResolvedTypeDeps {
|
|
|
35
35
|
* @returns
|
|
36
36
|
*/
|
|
37
37
|
export declare function resolveTypeDependencies(type: Type<ts.Type>, relativeFilePath: string, absoluteSrcPath: string): ResolvedTypeDeps;
|
|
38
|
+
/**
|
|
39
|
+
* Resolve the dependencies of a type from its text, as printed by the TypeScript checker
|
|
40
|
+
* @param rawType Raw type's text (e.g. `Array<import("somefile.ts").SomeType>`)
|
|
41
|
+
* @param relativeFilePath
|
|
42
|
+
* @param absoluteSrcPath
|
|
43
|
+
* @returns
|
|
44
|
+
*/
|
|
45
|
+
export declare function resolveTypeTextDependencies(rawType: string, relativeFilePath: string, absoluteSrcPath: string): ResolvedTypeDeps;
|
|
38
46
|
/**
|
|
39
47
|
* Extract an import type's name from a TS-Morph type
|
|
40
48
|
* @example "import('dir/file').TypeName" => "TypeName"
|
|
@@ -42,6 +50,13 @@ export declare function resolveTypeDependencies(type: Type<ts.Type>, relativeFil
|
|
|
42
50
|
* @returns
|
|
43
51
|
*/
|
|
44
52
|
export declare function getImportResolvedType(type: Type<ts.Type>): string;
|
|
53
|
+
/**
|
|
54
|
+
* Extract an import type's name from a type's text
|
|
55
|
+
* @example "import('dir/file').TypeName" => "TypeName"
|
|
56
|
+
* @param typeText
|
|
57
|
+
* @returns
|
|
58
|
+
*/
|
|
59
|
+
export declare function getImportResolvedTypeText(typeText: string): string;
|
|
45
60
|
/**
|
|
46
61
|
* Convert paths for external files
|
|
47
62
|
* @param importedFilePath
|
|
@@ -2,9 +2,47 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* @file Type dependencies builders from the source API
|
|
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.
|
|
7
|
-
|
|
39
|
+
exports.IMPORTED_TYPE_REGEX = void 0;
|
|
40
|
+
exports.resolveTypeDependencies = resolveTypeDependencies;
|
|
41
|
+
exports.resolveTypeTextDependencies = resolveTypeTextDependencies;
|
|
42
|
+
exports.getImportResolvedType = getImportResolvedType;
|
|
43
|
+
exports.getImportResolvedTypeText = getImportResolvedTypeText;
|
|
44
|
+
exports.normalizeExternalFilePath = normalizeExternalFilePath;
|
|
45
|
+
const path = __importStar(require("path"));
|
|
8
46
|
const logging_1 = require("../logging");
|
|
9
47
|
/**
|
|
10
48
|
* Regex to match or replace imported types
|
|
@@ -18,8 +56,16 @@ exports.IMPORTED_TYPE_REGEX = /\bimport\(['"]([^'"]+)['"]\)\.([a-zA-Z0-9_]+)\b/g
|
|
|
18
56
|
* @returns
|
|
19
57
|
*/
|
|
20
58
|
function resolveTypeDependencies(type, relativeFilePath, absoluteSrcPath) {
|
|
21
|
-
|
|
22
|
-
|
|
59
|
+
return resolveTypeTextDependencies(type.getText(), relativeFilePath, absoluteSrcPath);
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Resolve the dependencies of a type from its text, as printed by the TypeScript checker
|
|
63
|
+
* @param rawType Raw type's text (e.g. `Array<import("somefile.ts").SomeType>`)
|
|
64
|
+
* @param relativeFilePath
|
|
65
|
+
* @param absoluteSrcPath
|
|
66
|
+
* @returns
|
|
67
|
+
*/
|
|
68
|
+
function resolveTypeTextDependencies(rawType, relativeFilePath, absoluteSrcPath) {
|
|
23
69
|
if (path.isAbsolute(relativeFilePath)) {
|
|
24
70
|
(0, logging_1.unreachable)('Internal error: got absolute file path in type dependencies resolver, when expecting a relative one (got {magentaBright})', relativeFilePath);
|
|
25
71
|
}
|
|
@@ -44,7 +90,7 @@ function resolveTypeDependencies(type, relativeFilePath, absoluteSrcPath) {
|
|
|
44
90
|
}
|
|
45
91
|
for (const depFile of dependencies.keys()) {
|
|
46
92
|
if (path.isAbsolute(depFile)) {
|
|
47
|
-
(0, logging_1.unreachable)('Internal error: resolved absolute file path in type dependencies, when should have resolved a relative one\nIn type: {yellow}\nGot: {magentaBright}',
|
|
93
|
+
(0, logging_1.unreachable)('Internal error: resolved absolute file path in type dependencies, when should have resolved a relative one\nIn type: {yellow}\nGot: {magentaBright}', rawType, depFile);
|
|
48
94
|
}
|
|
49
95
|
}
|
|
50
96
|
return {
|
|
@@ -55,7 +101,6 @@ function resolveTypeDependencies(type, relativeFilePath, absoluteSrcPath) {
|
|
|
55
101
|
localTypes,
|
|
56
102
|
};
|
|
57
103
|
}
|
|
58
|
-
exports.resolveTypeDependencies = resolveTypeDependencies;
|
|
59
104
|
/**
|
|
60
105
|
* Extract an import type's name from a TS-Morph type
|
|
61
106
|
* @example "import('dir/file').TypeName" => "TypeName"
|
|
@@ -63,9 +108,17 @@ exports.resolveTypeDependencies = resolveTypeDependencies;
|
|
|
63
108
|
* @returns
|
|
64
109
|
*/
|
|
65
110
|
function getImportResolvedType(type) {
|
|
66
|
-
return type.getText()
|
|
111
|
+
return getImportResolvedTypeText(type.getText());
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Extract an import type's name from a type's text
|
|
115
|
+
* @example "import('dir/file').TypeName" => "TypeName"
|
|
116
|
+
* @param typeText
|
|
117
|
+
* @returns
|
|
118
|
+
*/
|
|
119
|
+
function getImportResolvedTypeText(typeText) {
|
|
120
|
+
return typeText.replace(exports.IMPORTED_TYPE_REGEX, (_, __, typename) => typename);
|
|
67
121
|
}
|
|
68
|
-
exports.getImportResolvedType = getImportResolvedType;
|
|
69
122
|
/**
|
|
70
123
|
* Convert paths for external files
|
|
71
124
|
* @param importedFilePath
|
|
@@ -82,5 +135,4 @@ function normalizeExternalFilePath(importedFilePath) {
|
|
|
82
135
|
}
|
|
83
136
|
return `_external${level}/${importedFilePath}`;
|
|
84
137
|
}
|
|
85
|
-
|
|
86
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZWRlcHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYW5hbHl6ZXIvdHlwZWRlcHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOztHQUVHOzs7QUFFSCw2QkFBNEI7QUFJNUIsd0NBQXdDO0FBRXhDOztHQUVHO0FBQ1UsUUFBQSxtQkFBbUIsR0FBRyxrREFBa0QsQ0FBQTtBQTRCckY7Ozs7OztHQU1HO0FBQ0gsU0FBZ0IsdUJBQXVCLENBQUMsSUFBbUIsRUFBRSxnQkFBd0IsRUFBRSxlQUF1QjtJQUM1RyxxRUFBcUU7SUFDckUsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFBO0lBRTlCLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUM7UUFDdEMsSUFBQSxxQkFBVyxFQUNULDJIQUEySCxFQUMzSCxnQkFBZ0IsQ0FDakIsQ0FBQTtJQUNILENBQUM7SUFFRCxNQUFNLFlBQVksR0FBcUMsSUFBSSxHQUFHLEVBQUUsQ0FBQTtJQUNoRSxNQUFNLFVBQVUsR0FBbUMsRUFBRSxDQUFBO0lBRXJELGdEQUFnRDtJQUNoRCxNQUFNLFlBQVksR0FBcUMsT0FBTyxDQUFDLE9BQU8sQ0FBQywyQkFBbUIsRUFBRSxDQUFDLENBQUMsRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLEVBQUU7UUFDdkgsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLEVBQUUsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQTtRQUVySCxNQUFNLElBQUksR0FBRyxZQUFZLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBRXZDLElBQUksSUFBSSxFQUFFLENBQUM7WUFDVCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUN6QixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO1lBQ2pCLENBQUM7UUFDSCxDQUFDO2FBQU0sQ0FBQztZQUNOLFlBQVksQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtRQUNwQyxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDLENBQUMsQ0FBQTtJQUVGLElBQUksWUFBWSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1FBQ3JDLElBQUEscUJBQVcsRUFBQyx5RUFBeUUsRUFBRSxhQUFhLEVBQUUsWUFBWSxDQUFDLENBQUE7SUFDckgsQ0FBQztJQUVELEtBQUssTUFBTSxPQUFPLElBQUksWUFBWSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7UUFDMUMsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDN0IsSUFBQSxxQkFBVyxFQUNULHFKQUFxSixFQUNySixJQUFJLENBQUMsT0FBTyxFQUFFLEVBQ2QsT0FBTyxDQUNSLENBQUE7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU87UUFDTCxPQUFPO1FBQ1AsZ0JBQWdCO1FBQ2hCLFlBQVk7UUFDWixZQUFZO1FBQ1osVUFBVTtLQUNYLENBQUE7QUFDSCxDQUFDO0FBcERELDBEQW9EQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBZ0IscUJBQXFCLENBQUMsSUFBbUI7SUFDdkQsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLDJCQUFtQixFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0FBQ25GLENBQUM7QUFGRCxzREFFQztBQUVEOzs7R0FHRztBQUNILFNBQWdCLHlCQUF5QixDQUFDLGdCQUF3QjtJQUNoRSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGdCQUFnQixDQUFDLENBQUE7SUFFbkQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3hDLE9BQU8sZ0JBQWdCLENBQUE7SUFDekIsQ0FBQztJQUVELElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQTtJQUViLE9BQU8sZ0JBQWdCLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDMUMsS0FBSyxFQUFFLENBQUE7UUFDUCxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDL0MsQ0FBQztJQUVELE9BQU8sWUFBWSxLQUFLLElBQUksZ0JBQWdCLEVBQUUsQ0FBQTtBQUNoRCxDQUFDO0FBZkQsOERBZUMifQ==
|
|
138
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZWRlcHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYW5hbHl6ZXIvdHlwZWRlcHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOztHQUVHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVILE1BQVksSUFBSSxpQ0FBWTtBQUk1Qix3Q0FBd0M7QUFFeEM7O0dBRUc7QUFDVSxRQUFBLG1CQUFtQixHQUFHLGtEQUFrRCxDQUFBO0FBNEJyRjs7Ozs7O0dBTUc7QUFDSCxpQ0FBd0MsSUFBbUIsRUFBRSxnQkFBd0IsRUFBRSxlQUF1QjtJQUM1RyxPQUFPLDJCQUEyQixDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLENBQUMsQ0FBQTtBQUN2RixDQUFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gscUNBQTRDLE9BQWUsRUFBRSxnQkFBd0IsRUFBRSxlQUF1QjtJQUM1RyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDO1FBQ3RDLElBQUEscUJBQVcsRUFDVCwySEFBMkgsRUFDM0gsZ0JBQWdCLENBQ2pCLENBQUE7SUFDSCxDQUFDO0lBRUQsTUFBTSxZQUFZLEdBQXFDLElBQUksR0FBRyxFQUFFLENBQUE7SUFDaEUsTUFBTSxVQUFVLEdBQW1DLEVBQUUsQ0FBQTtJQUVyRCxnREFBZ0Q7SUFDaEQsTUFBTSxZQUFZLEdBQXFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsUUFBQSxtQkFBbUIsRUFBRSxDQUFDLENBQUMsRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLEVBQUU7UUFDdkgsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLEVBQUUsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQTtRQUVySCxNQUFNLElBQUksR0FBRyxZQUFZLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBRXZDLElBQUksSUFBSSxFQUFFLENBQUM7WUFDVCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUN6QixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO1lBQ2pCLENBQUM7UUFDSCxDQUFDO2FBQU0sQ0FBQztZQUNOLFlBQVksQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtRQUNwQyxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDLENBQUMsQ0FBQTtJQUVGLElBQUksWUFBWSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1FBQ3JDLElBQUEscUJBQVcsRUFBQyx5RUFBeUUsRUFBRSxhQUFhLEVBQUUsWUFBWSxDQUFDLENBQUE7SUFDckgsQ0FBQztJQUVELEtBQUssTUFBTSxPQUFPLElBQUksWUFBWSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7UUFDMUMsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDN0IsSUFBQSxxQkFBVyxFQUNULHFKQUFxSixFQUNySixPQUFPLEVBQ1AsT0FBTyxDQUNSLENBQUE7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU87UUFDTCxPQUFPO1FBQ1AsZ0JBQWdCO1FBQ2hCLFlBQVk7UUFDWixZQUFZO1FBQ1osVUFBVTtLQUNYLENBQUE7QUFDSCxDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCwrQkFBc0MsSUFBbUI7SUFDdkQsT0FBTyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQTtBQUNsRCxDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxtQ0FBMEMsUUFBZ0I7SUFDeEQsT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDLFFBQUEsbUJBQW1CLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUE7QUFDN0UsQ0FBQztBQUVEOzs7R0FHRztBQUNILG1DQUEwQyxnQkFBd0I7SUFDaEUsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFBO0lBRW5ELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUN4QyxPQUFPLGdCQUFnQixDQUFBO0lBQ3pCLENBQUM7SUFFRCxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUE7SUFFYixPQUFPLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQzFDLEtBQUssRUFBRSxDQUFBO1FBQ1AsZ0JBQWdCLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQy9DLENBQUM7SUFFRCxPQUFPLFlBQVksS0FBSyxJQUFJLGdCQUFnQixFQUFFLENBQUE7QUFDaEQsQ0FBQyJ9
|
package/build/bin.js
CHANGED
|
@@ -1,35 +1,82 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
"use strict";
|
|
3
|
-
var
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
3
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
4
|
+
if (k2 === undefined) k2 = k;
|
|
5
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
6
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
7
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
8
|
+
}
|
|
9
|
+
Object.defineProperty(o, k2, desc);
|
|
10
|
+
}) : (function(o, m, k, k2) {
|
|
11
|
+
if (k2 === undefined) k2 = k;
|
|
12
|
+
o[k2] = m[k];
|
|
13
|
+
}));
|
|
14
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
15
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
16
|
+
}) : function(o, v) {
|
|
17
|
+
o["default"] = v;
|
|
18
|
+
});
|
|
19
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
20
|
+
var ownKeys = function(o) {
|
|
21
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
22
|
+
var ar = [];
|
|
23
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
24
|
+
return ar;
|
|
25
|
+
};
|
|
26
|
+
return ownKeys(o);
|
|
27
|
+
};
|
|
28
|
+
return function (mod) {
|
|
29
|
+
if (mod && mod.__esModule) return mod;
|
|
30
|
+
var result = {};
|
|
31
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
32
|
+
__setModuleDefault(result, mod);
|
|
33
|
+
return result;
|
|
34
|
+
};
|
|
35
|
+
})();
|
|
36
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
37
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
11
38
|
};
|
|
12
39
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
-
const path = require("path");
|
|
14
|
-
const analyzer_1 = require("./analyzer");
|
|
40
|
+
const path = __importStar(require("path"));
|
|
15
41
|
const config_1 = require("./config");
|
|
16
|
-
const
|
|
42
|
+
const engine_1 = require("./engine");
|
|
43
|
+
const generator_1 = __importDefault(require("./generator"));
|
|
17
44
|
const logging_1 = require("./logging");
|
|
18
|
-
const rtk_query_generator_1 = require("./rtk-query-generator");
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
45
|
+
const rtk_query_generator_1 = __importDefault(require("./rtk-query-generator"));
|
|
46
|
+
/**
|
|
47
|
+
* Get the analysis engine to use: `--engine <name>` or `--engine=<name>` on the command line,
|
|
48
|
+
* then the configuration file's `engine` option, then the default one
|
|
49
|
+
*/
|
|
50
|
+
function getEngine(args) {
|
|
51
|
+
let engine = config_1.config.engine ?? 'tsgo';
|
|
52
|
+
for (let i = 0; i < args.length; i++) {
|
|
53
|
+
if (args[i] === '--engine') {
|
|
54
|
+
engine = args[++i] ?? '';
|
|
27
55
|
}
|
|
28
|
-
if (
|
|
29
|
-
|
|
56
|
+
else if (args[i].startsWith('--engine=')) {
|
|
57
|
+
engine = args[i].substring('--engine='.length);
|
|
30
58
|
}
|
|
31
|
-
|
|
32
|
-
|
|
59
|
+
}
|
|
60
|
+
if (!(0, engine_1.isEngineName)(engine)) {
|
|
61
|
+
(0, logging_1.panic)('Unknown analysis engine {yellow} (expected one of: {})', engine, engine_1.ENGINES.join(', '));
|
|
62
|
+
}
|
|
63
|
+
return engine;
|
|
64
|
+
}
|
|
65
|
+
async function main() {
|
|
66
|
+
const started = Date.now();
|
|
67
|
+
const args = process.argv.slice(3);
|
|
68
|
+
const engine = getEngine(args);
|
|
69
|
+
const outputType = args.find((arg) => arg === '--generate' || arg === '--generate-rtk');
|
|
70
|
+
process.chdir(path.dirname(path.resolve(config_1.configPath)));
|
|
71
|
+
const sdkContent = await (0, engine_1.analyze)(config_1.config, engine);
|
|
72
|
+
if (outputType === '--generate') {
|
|
73
|
+
await (0, generator_1.default)(config_1.config, sdkContent);
|
|
74
|
+
}
|
|
75
|
+
if (outputType === '--generate-rtk') {
|
|
76
|
+
(0, logging_1.log)('> Generating RTK Query endpoints for Nest API...');
|
|
77
|
+
await (0, rtk_query_generator_1.default)(config_1.config, sdkContent);
|
|
78
|
+
}
|
|
79
|
+
(0, logging_1.log)('> Done in ' + ((Date.now() - started) / 1000).toFixed(2) + 's');
|
|
33
80
|
}
|
|
34
81
|
main();
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
82
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmluLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2Jpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFQSxNQUFZLElBQUksaUNBQVk7QUFFNUIscUNBQTZDO0FBQzdDLHFDQUFxRTtBQUNyRSw0REFBMkM7QUFDM0MsdUNBQXNDO0FBQ3RDLGdGQUE2RDtBQUU3RDs7O0dBR0c7QUFDSCxTQUFTLFNBQVMsQ0FBQyxJQUFjO0lBQy9CLElBQUksTUFBTSxHQUFXLGVBQU0sQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFBO0lBRTVDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDckMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssVUFBVSxFQUFFLENBQUM7WUFDM0IsTUFBTSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtRQUMxQixDQUFDO2FBQU0sSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7WUFDM0MsTUFBTSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBQ2hELENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSSxDQUFDLElBQUEscUJBQVksRUFBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQzFCLElBQUEsZUFBSyxFQUFDLHdEQUF3RCxFQUFFLE1BQU0sRUFBRSxnQkFBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQzdGLENBQUM7SUFFRCxPQUFPLE1BQU0sQ0FBQTtBQUNmLENBQUM7QUFFRCxLQUFLLFVBQVUsSUFBSTtJQUNqQixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUE7SUFFMUIsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDbEMsTUFBTSxNQUFNLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQzlCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxZQUFZLElBQUksR0FBRyxLQUFLLGdCQUFnQixDQUFDLENBQUE7SUFFdkYsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsbUJBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUVyRCxNQUFNLFVBQVUsR0FBRyxNQUFNLElBQUEsZ0JBQU8sRUFBQyxlQUFNLEVBQUUsTUFBTSxDQUFDLENBQUE7SUFFaEQsSUFBSSxVQUFVLEtBQUssWUFBWSxFQUFFLENBQUM7UUFDaEMsTUFBTSxJQUFBLG1CQUFpQixFQUFDLGVBQU0sRUFBRSxVQUFVLENBQUMsQ0FBQTtJQUM3QyxDQUFDO0lBRUQsSUFBSSxVQUFVLEtBQUssZ0JBQWdCLEVBQUUsQ0FBQztRQUNwQyxJQUFBLGFBQUcsRUFBQyxrREFBa0QsQ0FBQyxDQUFBO1FBQ3ZELE1BQU0sSUFBQSw2QkFBeUIsRUFBQyxlQUFNLEVBQUUsVUFBVSxDQUFDLENBQUE7SUFDckQsQ0FBQztJQUVELElBQUEsYUFBRyxFQUFDLFlBQVksR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQTtBQUN0RSxDQUFDO0FBRUQsSUFBSSxFQUFFLENBQUEifQ==
|
package/build/config.d.ts
CHANGED
|
@@ -19,6 +19,14 @@ export interface Config {
|
|
|
19
19
|
removeSuffix?: string;
|
|
20
20
|
};
|
|
21
21
|
};
|
|
22
|
+
/**
|
|
23
|
+
* Engine used to analyze the API (default: "tsgo")
|
|
24
|
+
* - "tsgo": TypeScript 7's native compiler (fastest)
|
|
25
|
+
* - "typescript": the API's own TypeScript compiler (6.x) running in-process; same output as "tsgo"
|
|
26
|
+
* - "ts-morph": the original analyzer (TypeScript 4.8); same output as previous versions of this tool
|
|
27
|
+
* Can be overridden with the `--engine` command-line option
|
|
28
|
+
*/
|
|
29
|
+
readonly engine?: 'tsgo' | 'typescript' | 'ts-morph';
|
|
22
30
|
/** If the SDK interface file does not exist yet, create one automatically (enabled by default) */
|
|
23
31
|
readonly generateDefaultSdkInterface?: boolean;
|
|
24
32
|
/** Write generation timestamp in each TypeScript file (enabled by default) */
|
|
@@ -43,6 +51,11 @@ export interface Config {
|
|
|
43
51
|
readonly sdkOutputPath: string;
|
|
44
52
|
/** Path to custom tsconfig file */
|
|
45
53
|
readonly tsconfigFile?: string;
|
|
54
|
+
/**
|
|
55
|
+
* Path to the TypeScript package used by the "typescript" engine
|
|
56
|
+
* (default: the "typescript" package installed for the API, resolved from `apiInputPath`)
|
|
57
|
+
*/
|
|
58
|
+
readonly typescriptPath?: string;
|
|
46
59
|
/** Enable verbose mode */
|
|
47
60
|
readonly verbose?: boolean;
|
|
48
61
|
}
|