@nestia/sdk 1.1.1 → 1.2.0-dev.20230504-2
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/assets/bundle/api/index.ts +4 -0
- package/assets/bundle/api/module.ts +5 -0
- package/assets/bundle/e2e/index.ts +41 -0
- package/lib/INestiaConfig.d.ts +6 -0
- package/lib/NestiaSdkApplication.d.ts +1 -0
- package/lib/NestiaSdkApplication.js +35 -14
- package/lib/NestiaSdkApplication.js.map +1 -1
- package/lib/analyses/ControllerAnalyzer.js +1 -0
- package/lib/analyses/ControllerAnalyzer.js.map +1 -1
- package/lib/analyses/ReflectAnalyzer.js +12 -1
- package/lib/analyses/ReflectAnalyzer.js.map +1 -1
- package/lib/executable/internal/NestiaSdkCommand.d.ts +3 -2
- package/lib/executable/internal/NestiaSdkCommand.js +52 -56
- package/lib/executable/internal/NestiaSdkCommand.js.map +1 -1
- package/lib/executable/internal/NestiaSdkConfig.js +5 -1
- package/lib/executable/internal/NestiaSdkConfig.js.map +1 -1
- package/lib/executable/sdk.js +5 -8
- package/lib/executable/sdk.js.map +1 -1
- package/lib/generates/E2eGenerator.d.ts +5 -0
- package/lib/generates/E2eGenerator.js +52 -0
- package/lib/generates/E2eGenerator.js.map +1 -0
- package/lib/generates/SdkGenerator.d.ts +1 -2
- package/lib/generates/SdkGenerator.js +20 -22
- package/lib/generates/SdkGenerator.js.map +1 -1
- package/lib/generates/SwaggerGenerator.d.ts +1 -1
- package/lib/generates/SwaggerGenerator.js +40 -43
- package/lib/generates/SwaggerGenerator.js.map +1 -1
- package/lib/generates/internal/E2eFileProgrammer.d.ts +8 -0
- package/lib/generates/internal/E2eFileProgrammer.js +105 -0
- package/lib/generates/internal/E2eFileProgrammer.js.map +1 -0
- package/lib/generates/internal/SdkFileProgrammer.d.ts +5 -0
- package/lib/generates/internal/SdkFileProgrammer.js +121 -0
- package/lib/generates/internal/SdkFileProgrammer.js.map +1 -0
- package/lib/generates/internal/SdkFunctionProgrammer.d.ts +5 -0
- package/lib/generates/{FunctionGenerator.js → internal/SdkFunctionProgrammer.js} +58 -57
- package/lib/generates/internal/SdkFunctionProgrammer.js.map +1 -0
- package/lib/generates/internal/SdkRouteDirectory.d.ts +10 -0
- package/lib/generates/internal/SdkRouteDirectory.js +18 -0
- package/lib/generates/internal/SdkRouteDirectory.js.map +1 -0
- package/lib/structures/IController.d.ts +4 -0
- package/lib/structures/IRoute.d.ts +4 -0
- package/lib/utils/NestiaConfigUtil.d.ts +4 -0
- package/lib/utils/NestiaConfigUtil.js +24 -0
- package/lib/utils/NestiaConfigUtil.js.map +1 -0
- package/lib/utils/SourceFinder.d.ts +9 -0
- package/lib/utils/SourceFinder.js +60 -0
- package/lib/utils/SourceFinder.js.map +1 -0
- package/package.json +2 -3
- package/src/INestiaConfig.ts +7 -0
- package/src/NestiaSdkApplication.ts +54 -17
- package/src/analyses/ControllerAnalyzer.ts +1 -0
- package/src/analyses/ReflectAnalyzer.ts +12 -2
- package/src/executable/internal/NestiaSdkCommand.ts +87 -105
- package/src/executable/sdk.ts +4 -8
- package/src/generates/E2eGenerator.ts +65 -0
- package/src/generates/SdkGenerator.ts +29 -30
- package/src/generates/SwaggerGenerator.ts +66 -64
- package/src/generates/internal/E2eFileProgrammer.ts +123 -0
- package/src/generates/internal/SdkFileProgrammer.ts +144 -0
- package/src/generates/internal/SdkFunctionProgrammer.ts +371 -0
- package/src/generates/internal/SdkRouteDirectory.ts +21 -0
- package/src/structures/IController.ts +4 -0
- package/src/structures/IRoute.ts +4 -0
- package/src/utils/NestiaConfigUtil.ts +21 -0
- package/src/utils/SourceFinder.ts +60 -0
- package/lib/analyses/SourceFinder.d.ts +0 -4
- package/lib/analyses/SourceFinder.js +0 -71
- package/lib/analyses/SourceFinder.js.map +0 -1
- package/lib/generates/FileGenerator.d.ts +0 -5
- package/lib/generates/FileGenerator.js +0 -138
- package/lib/generates/FileGenerator.js.map +0 -1
- package/lib/generates/FunctionGenerator.d.ts +0 -5
- package/lib/generates/FunctionGenerator.js.map +0 -1
- package/src/analyses/SourceFinder.ts +0 -59
- package/src/generates/FileGenerator.ts +0 -156
- package/src/generates/FunctionGenerator.ts +0 -348
- /package/assets/bundle/{HttpError.ts → api/HttpError.ts} +0 -0
- /package/assets/bundle/{IConnection.ts → api/IConnection.ts} +0 -0
- /package/assets/bundle/{Primitive.ts → api/Primitive.ts} +0 -0
|
@@ -1,35 +1,36 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.SdkFunctionProgrammer = void 0;
|
|
4
4
|
const Vector_1 = require("tstl/container/Vector");
|
|
5
5
|
const Pair_1 = require("tstl/utility/Pair");
|
|
6
6
|
const Escaper_1 = require("typia/lib/utils/Escaper");
|
|
7
|
-
var
|
|
8
|
-
(function (
|
|
9
|
-
|
|
7
|
+
var SdkFunctionProgrammer;
|
|
8
|
+
(function (SdkFunctionProgrammer) {
|
|
9
|
+
SdkFunctionProgrammer.generate = (config) => (route) => {
|
|
10
10
|
const query = route.parameters.find((param) => param.category === "query" && param.field === undefined);
|
|
11
11
|
const input = route.parameters.find((param) => param.category === "body");
|
|
12
12
|
return [head, body, tail]
|
|
13
|
-
.map((closure) => closure(route
|
|
13
|
+
.map((closure) => closure(config)(route)({ query, input }))
|
|
14
14
|
.filter((str) => !!str)
|
|
15
15
|
.join("\n");
|
|
16
|
-
}
|
|
17
|
-
FunctionGenerator.generate = generate;
|
|
16
|
+
};
|
|
18
17
|
/* ---------------------------------------------------------
|
|
19
18
|
BODY
|
|
20
19
|
--------------------------------------------------------- */
|
|
21
|
-
|
|
20
|
+
const body = (config) => (route) => (props) => {
|
|
22
21
|
var _a;
|
|
23
22
|
// FETCH ARGUMENTS WITH REQUST BODY
|
|
24
|
-
const parameters = filter_parameters(route
|
|
23
|
+
const parameters = filter_parameters(route)(props.query);
|
|
25
24
|
const fetchArguments = [
|
|
26
25
|
"connection",
|
|
27
26
|
`${route.name}.ENCRYPTED`,
|
|
28
27
|
`${route.name}.METHOD`,
|
|
29
|
-
`${route.name}.path(${parameters
|
|
28
|
+
`${route.name}.path(${parameters
|
|
29
|
+
.map((p) => p.name)
|
|
30
|
+
.join(", ")})`,
|
|
30
31
|
];
|
|
31
|
-
if (input !== undefined) {
|
|
32
|
-
fetchArguments.push(input.name);
|
|
32
|
+
if (props.input !== undefined) {
|
|
33
|
+
fetchArguments.push(props.input.name);
|
|
33
34
|
if (config.json === true)
|
|
34
35
|
fetchArguments.push(`${route.name}.stringify`);
|
|
35
36
|
}
|
|
@@ -57,27 +58,25 @@ var FunctionGenerator;
|
|
|
57
58
|
];
|
|
58
59
|
for (const header of route.setHeaders) {
|
|
59
60
|
if (header.type === "assigner")
|
|
60
|
-
content.push(" ", `Object.assign(connection.headers, ${access("output"
|
|
61
|
+
content.push(" ", `Object.assign(connection.headers, ${access("output")(header.source)});\n`);
|
|
61
62
|
else
|
|
62
|
-
content.push(" ", `${access("connection.headers"
|
|
63
|
+
content.push(" ", `${access("connection.headers")((_a = header.target) !== null && _a !== void 0 ? _a : header.source)} = ${access("output")(header.source)};\n`);
|
|
63
64
|
}
|
|
64
65
|
content.push("\n", " return output;\n", "}");
|
|
65
66
|
return content.join("");
|
|
66
|
-
}
|
|
67
|
-
|
|
67
|
+
};
|
|
68
|
+
const filter_parameters = (route) => (query) => {
|
|
68
69
|
const parameters = route.parameters.filter((param) => param.category === "param" ||
|
|
69
70
|
(param.category === "query" && param.field !== undefined));
|
|
70
71
|
if (query)
|
|
71
72
|
parameters.push(query);
|
|
72
73
|
return parameters;
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
return y[0] === "[" ? `${x}${y}` : `${x}.${y}`;
|
|
76
|
-
}
|
|
74
|
+
};
|
|
75
|
+
const access = (x) => (y) => y[0] === "[" ? `${x}${y}` : `${x}.${y}`;
|
|
77
76
|
/* ---------------------------------------------------------
|
|
78
77
|
HEAD & TAIL
|
|
79
78
|
--------------------------------------------------------- */
|
|
80
|
-
|
|
79
|
+
const head = (config) => (route) => (props) => {
|
|
81
80
|
//----
|
|
82
81
|
// CONSTRUCT COMMENT
|
|
83
82
|
//----
|
|
@@ -130,8 +129,8 @@ var FunctionGenerator;
|
|
|
130
129
|
"connection: IConnection",
|
|
131
130
|
...route.parameters.map((param) => {
|
|
132
131
|
const type = config.primitive !== false &&
|
|
133
|
-
(param === query || param === input)
|
|
134
|
-
? `Primitive<${route.name}.${param === query ? "Query" : "Input"}>`
|
|
132
|
+
(param === props.query || param === props.input)
|
|
133
|
+
? `Primitive<${route.name}.${param === props.query ? "Query" : "Input"}>`
|
|
135
134
|
: param.type.name;
|
|
136
135
|
return `${param.name}${param.optional ? "?" : ""}: ${type}`;
|
|
137
136
|
}),
|
|
@@ -148,19 +147,23 @@ var FunctionGenerator;
|
|
|
148
147
|
` (\n` +
|
|
149
148
|
`${parameters.map((str) => ` ${str}`).join(",\n")}\n` +
|
|
150
149
|
` ): Promise<${output}>`);
|
|
151
|
-
}
|
|
152
|
-
|
|
150
|
+
};
|
|
151
|
+
const tail = (config) => (route) => (props) => {
|
|
153
152
|
// LIST UP TYPES
|
|
154
153
|
const types = [];
|
|
155
|
-
if (query !== undefined)
|
|
156
|
-
types.push(new Pair_1.Pair("Query", query.type.name));
|
|
157
|
-
if (input !== undefined)
|
|
158
|
-
types.push(new Pair_1.Pair("Input", input.type.name));
|
|
154
|
+
if (props.query !== undefined)
|
|
155
|
+
types.push(new Pair_1.Pair("Query", props.query.type.name));
|
|
156
|
+
if (props.input !== undefined)
|
|
157
|
+
types.push(new Pair_1.Pair("Input", props.input.type.name));
|
|
159
158
|
if (route.output.name !== "void")
|
|
160
159
|
types.push(new Pair_1.Pair("Output", route.output.name));
|
|
161
160
|
// PATH WITH PARAMETERS
|
|
162
|
-
const parameters = filter_parameters(route
|
|
163
|
-
const path = compute_path(
|
|
161
|
+
const parameters = filter_parameters(route)(props.query);
|
|
162
|
+
const path = compute_path({
|
|
163
|
+
path: route.path,
|
|
164
|
+
query: props.query,
|
|
165
|
+
parameters,
|
|
166
|
+
});
|
|
164
167
|
return (`export namespace ${route.name}\n` +
|
|
165
168
|
"{\n" +
|
|
166
169
|
(types.length !== 0
|
|
@@ -174,7 +177,7 @@ var FunctionGenerator;
|
|
|
174
177
|
` export const METHOD = "${route.method}" as const;\n` +
|
|
175
178
|
` export const PATH: string = "${route.path}";\n` +
|
|
176
179
|
` export const ENCRYPTED: Fetcher.IEncrypted = {\n` +
|
|
177
|
-
` request: ${input !== undefined && input.encrypted},\n` +
|
|
180
|
+
` request: ${props.input !== undefined && props.input.encrypted},\n` +
|
|
178
181
|
` response: ${route.encrypted},\n` +
|
|
179
182
|
(route.status !== undefined
|
|
180
183
|
? ` status: ${route.status},\n`
|
|
@@ -193,16 +196,16 @@ var FunctionGenerator;
|
|
|
193
196
|
? ` export const stringify = (input: Input) => typia.assertStringify(input);\n`
|
|
194
197
|
: "") +
|
|
195
198
|
"}");
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
for (const param of parameters)
|
|
199
|
+
};
|
|
200
|
+
const compute_path = (props) => {
|
|
201
|
+
for (const param of props.parameters)
|
|
199
202
|
if (param.category === "param")
|
|
200
|
-
path = path.replace(`:${param.field}`, `\${encodeURIComponent(${param.name} ?? "null")}`);
|
|
203
|
+
props.path = props.path.replace(`:${param.field}`, `\${encodeURIComponent(${param.name} ?? "null")}`);
|
|
201
204
|
// NO QUERY PARAMETER
|
|
202
|
-
const queryParams = parameters.filter((param) => param.category === "query" && param.field !== undefined);
|
|
203
|
-
if (query === undefined && queryParams.length === 0)
|
|
204
|
-
return `${" ".repeat(8)}return \`${path}\``;
|
|
205
|
-
const computeName = (str) => parameters.find((p) => p.name === str) !== undefined
|
|
205
|
+
const queryParams = props.parameters.filter((param) => param.category === "query" && param.field !== undefined);
|
|
206
|
+
if (props.query === undefined && queryParams.length === 0)
|
|
207
|
+
return `${" ".repeat(8)}return \`${props.path}\``;
|
|
208
|
+
const computeName = (str) => props.parameters.find((p) => p.name === str) !== undefined
|
|
206
209
|
? computeName("_" + str)
|
|
207
210
|
: str;
|
|
208
211
|
const variables = computeName("variables");
|
|
@@ -218,31 +221,29 @@ var FunctionGenerator;
|
|
|
218
221
|
` else`,
|
|
219
222
|
` ${search}.set(key, String(value));`,
|
|
220
223
|
`const ${encoded}: string = ${search}.toString();`,
|
|
221
|
-
`return \`${path}\${${encoded}.length ? \`?\${${encoded}}\` : ""}\`;`,
|
|
224
|
+
`return \`${props.path}\${${encoded}.length ? \`?\${${encoded}}\` : ""}\`;`,
|
|
222
225
|
]
|
|
223
226
|
.map((str) => `${" ".repeat(8)}${str}`)
|
|
224
227
|
.join("\n");
|
|
225
|
-
if (query !== undefined && queryParams.length === 0)
|
|
226
|
-
return wrapper(`${query.name} as any`);
|
|
227
|
-
else if (query === undefined)
|
|
228
|
+
if (props.query !== undefined && queryParams.length === 0)
|
|
229
|
+
return wrapper(`${props.query.name} as any`);
|
|
230
|
+
else if (props.query === undefined)
|
|
228
231
|
return wrapper(`
|
|
229
232
|
{
|
|
230
233
|
${rest_query_parameters(queryParams)}
|
|
231
234
|
} as any`);
|
|
232
235
|
return wrapper(`
|
|
233
236
|
{
|
|
234
|
-
...${query.name},
|
|
237
|
+
...${props.query.name},
|
|
235
238
|
${rest_query_parameters(queryParams)},
|
|
236
239
|
} as any`);
|
|
237
|
-
}
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
})(FunctionGenerator = exports.FunctionGenerator || (exports.FunctionGenerator = {}));
|
|
248
|
-
//# sourceMappingURL=FunctionGenerator.js.map
|
|
240
|
+
};
|
|
241
|
+
const rest_query_parameters = (parameters) => parameters
|
|
242
|
+
.map((param) => param.name === param.field
|
|
243
|
+
? param.name
|
|
244
|
+
: `${Escaper_1.Escaper.variable(param.field)
|
|
245
|
+
? param.field
|
|
246
|
+
: JSON.stringify(param.field)}: ${param.name}`)
|
|
247
|
+
.join(`,\n${" ".repeat(12)}`);
|
|
248
|
+
})(SdkFunctionProgrammer = exports.SdkFunctionProgrammer || (exports.SdkFunctionProgrammer = {}));
|
|
249
|
+
//# sourceMappingURL=SdkFunctionProgrammer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SdkFunctionProgrammer.js","sourceRoot":"","sources":["../../../src/generates/internal/SdkFunctionProgrammer.ts"],"names":[],"mappings":";;;AAAA,kDAA+C;AAC/C,4CAAyC;AAGzC,qDAAkD;AAKlD,IAAiB,qBAAqB,CAyWrC;AAzWD,WAAiB,qBAAqB;IACrB,8BAAQ,GACjB,CAAC,MAAqB,EAAE,EAAE,CAC1B,CAAC,KAAa,EAAU,EAAE;QACtB,MAAM,KAAK,GAAkC,KAAK,CAAC,UAAU,CAAC,IAAI,CAC9D,CAAC,KAAK,EAAE,EAAE,CACN,KAAK,CAAC,QAAQ,KAAK,OAAO,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,CAC9D,CAAC;QACF,MAAM,KAAK,GAAkC,KAAK,CAAC,UAAU,CAAC,IAAI,CAC9D,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,KAAK,MAAM,CACvC,CAAC;QAEF,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;aACpB,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;aAC1D,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;aACtB,IAAI,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC,CAAC;IAEN;;gEAE4D;IAC5D,MAAM,IAAI,GACN,CAAC,MAAqB,EAAE,EAAE,CAC1B,CAAC,KAAa,EAAE,EAAE,CAClB,CAAC,KAGA,EAAU,EAAE;;QACT,mCAAmC;QACnC,MAAM,UAAU,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACzD,MAAM,cAAc,GAAa;YAC7B,YAAY;YACZ,GAAG,KAAK,CAAC,IAAI,YAAY;YACzB,GAAG,KAAK,CAAC,IAAI,SAAS;YACtB,GAAG,KAAK,CAAC,IAAI,SAAS,UAAU;iBAC3B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;iBAClB,IAAI,CAAC,IAAI,CAAC,GAAG;SACrB,CAAC;QACF,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE;YAC3B,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACtC,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI;gBACpB,cAAc,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,YAAY,CAAC,CAAC;SACtD;QAED,MAAM,UAAU,GACZ,MAAM,CAAC,MAAM,KAAK,IAAI,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC;YACnD,CAAC,CAAC,KAAK,CAAC,UAAU;iBACX,GAAG,CACA,CAAC,KAAK,EAAE,EAAE,CACN,2BAA2B,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,IAAI,CAC/D;iBACA,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM;YAC1B,CAAC,CAAC,EAAE,CAAC;QAEb,0BAA0B;QAC1B,MAAM,MAAM,GACR,iBAAiB;YACjB,SAAS;YACT,cAAc,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;YAC7D,IAAI;YACJ,OAAO,CAAC;QACZ,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC;YAC7B,OAAO,MAAM,UAAU,cAAc,MAAM,MAAM,CAAC;QAEtD,cAAc;QACd,MAAM,OAAO,GAAa;YACtB,KAAK;YACL,UAAU;YACV,qBAAqB,KAAK,CAAC,IAAI,mBAAmB,MAAM,KAAK;YAC7D,IAAI;YACJ,8BAA8B;YAC9B,kCAAkC;SACrC,CAAC;QAEF,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,UAAU,EAAE;YACnC,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU;gBAC1B,OAAO,CAAC,IAAI,CACR,MAAM,EACN,qCAAqC,MAAM,CAAC,QAAQ,CAAC,CACjD,MAAM,CAAC,MAAM,CAChB,MAAM,CACV,CAAC;;gBAEF,OAAO,CAAC,IAAI,CACR,MAAM,EACN,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAC3B,MAAA,MAAM,CAAC,MAAM,mCAAI,MAAM,CAAC,MAAM,CACjC,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAC9C,CAAC;SACT;QACD,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,sBAAsB,EAAE,GAAG,CAAC,CAAC;QAChD,OAAO,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC5B,CAAC,CAAC;IAEN,MAAM,iBAAiB,GACnB,CAAC,KAAa,EAAE,EAAE,CAClB,CAAC,KAAoC,EAAuB,EAAE;QAC1D,MAAM,UAAU,GAAwB,KAAK,CAAC,UAAU,CAAC,MAAM,CAC3D,CAAC,KAAK,EAAE,EAAE,CACN,KAAK,CAAC,QAAQ,KAAK,OAAO;YAC1B,CAAC,KAAK,CAAC,QAAQ,KAAK,OAAO,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAChE,CAAC;QACF,IAAI,KAAK;YAAE,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClC,OAAO,UAAU,CAAC;IACtB,CAAC,CAAC;IAEN,MAAM,MAAM,GACR,CAAC,CAAS,EAAE,EAAE,CACd,CAAC,CAAS,EAAU,EAAE,CAClB,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;IAEhD;;gEAE4D;IAC5D,MAAM,IAAI,GACN,CAAC,MAAqB,EAAE,EAAE,CAC1B,CAAC,KAAa,EAAE,EAAE,CAClB,CAAC,KAGA,EAAU,EAAE;QACT,MAAM;QACN,oBAAoB;QACpB,MAAM;QACN,mBAAmB;QACnB,MAAM,QAAQ,GAAa,KAAK,CAAC,QAAQ;aACpC,GAAG,CACA,CAAC,IAAI,EAAE,EAAE,CACL,GAAG,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,CAC3D;aACA,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC1C,IAAI,CAAC,EAAE,CAAC;aACR,KAAK,CAAC,IAAI,CAAC;aACX,MAAM,CACH,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,EAAE,IAAI,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC,CAC1D,CAAC;QACN,IAAI,QAAQ,CAAC,MAAM;YAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEvC,uDAAuD;QACvD,MAAM,OAAO,GAAsB,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QACtD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YACtB,MAAM,KAAK,GAAW,OAAO,CAAC,SAAS,CACnC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAC5B,CAAC;YACF,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;gBACd,MAAM,OAAO,GACT,eAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACzB,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;oBAC/B,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE;wBACF;4BACI,IAAI,EAAE,eAAe;4BACrB,IAAI,EAAE,YAAY;yBACrB;wBACD;4BACI,IAAI,EAAE,OAAO;4BACb,IAAI,EAAE,GAAG;yBACZ;wBACD;4BACI,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,yFAAyF;yBAClG;qBACJ;iBACJ,CAAC,CAAC;aACN;YACD,QAAQ,CAAC,IAAI,CACT,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CACnB,GAAG,CAAC,IAAI;gBACJ,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI;qBACnB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;qBACxB,IAAI,CAAC,EAAE,CAAC,EAAE;gBACjB,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,EAAE,CACvB,EACD,EAAE,CACL,CAAC;SACL;QAED,uBAAuB;QACvB,QAAQ,CAAC,IAAI,CACT,eAAe,KAAK,CAAC,MAAM,EAAE,EAC7B,SAAS,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,EAAE,EACrC,iEAAiE,CACpE,CAAC;QAEF,MAAM;QACN,eAAe;QACf,MAAM;QACN,yBAAyB;QACzB,MAAM,UAAU,GAAa;YACzB,yBAAyB;YACzB,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;gBAC9B,MAAM,IAAI,GACN,MAAM,CAAC,SAAS,KAAK,KAAK;oBAC1B,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,IAAI,KAAK,KAAK,KAAK,CAAC,KAAK,CAAC;oBAC5C,CAAC,CAAC,aAAa,KAAK,CAAC,IAAI,IACnB,KAAK,KAAK,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OACtC,GAAG;oBACL,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;gBAC1B,OAAO,GAAG,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,EAAE,CAAC;YAChE,CAAC,CAAC;SACL,CAAC;QAEF,cAAc;QACd,MAAM,MAAM,GACR,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,SAAS,CAAC;QAEnE,4BAA4B;QAC5B,OAAO,CACH,EAAE;YACF,OAAO;YACP,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YAC7C,IAAI;YACJ,OAAO;YACP,SAAS,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,aAC5C,KAAK,CAAC,IACV,IAAI;YACJ,SAAS;YACT,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,WAAW,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI;YAC5D,kBAAkB,MAAM,GAAG,CAC9B,CAAC;IACN,CAAC,CAAC;IAEN,MAAM,IAAI,GACN,CAAC,MAAqB,EAAE,EAAE,CAC1B,CAAC,KAAa,EAAE,EAAE,CAClB,CAAC,KAGA,EAAiB,EAAE;QAChB,gBAAgB;QAChB,MAAM,KAAK,GAA2B,EAAE,CAAC;QACzC,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS;YACzB,KAAK,CAAC,IAAI,CAAC,IAAI,WAAI,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACzD,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS;YACzB,KAAK,CAAC,IAAI,CAAC,IAAI,WAAI,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACzD,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,MAAM;YAC5B,KAAK,CAAC,IAAI,CAAC,IAAI,WAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAEtD,uBAAuB;QACvB,MAAM,UAAU,GAAwB,iBAAiB,CAAC,KAAK,CAAC,CAC5D,KAAK,CAAC,KAAK,CACd,CAAC;QACF,MAAM,IAAI,GAAW,YAAY,CAAC;YAC9B,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,UAAU;SACb,CAAC,CAAC;QAEH,OAAO,CACH,oBAAoB,KAAK,CAAC,IAAI,IAAI;YAClC,KAAK;YACL,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;gBACf,CAAC,CAAC,KAAK;qBACA,GAAG,CACA,CAAC,KAAK,EAAE,EAAE,CACN,mBAAmB,KAAK,CAAC,KAAK,MAC1B,MAAM,CAAC,SAAS,KAAK,KAAK;oBACtB,CAAC,CAAC,aAAa,KAAK,CAAC,MAAM,GAAG;oBAC9B,CAAC,CAAC,KAAK,CAAC,MAChB,GAAG,CACV;qBACA,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI;gBACxB,CAAC,CAAC,EAAE,CAAC;YACT,IAAI;YACJ,8BAA8B,KAAK,CAAC,MAAM,eAAe;YACzD,oCAAoC,KAAK,CAAC,IAAI,MAAM;YACpD,sDAAsD;YACtD,oBACI,KAAK,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,KAAK,CAAC,SAC7C,KAAK;YACL,qBAAqB,KAAK,CAAC,SAAS,KAAK;YACzC,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS;gBACvB,CAAC,CAAC,mBAAmB,KAAK,CAAC,MAAM,KAAK;gBACtC,CAAC,CAAC,EAAE,CAAC;YACT,UAAU;YACV,IAAI;YACJ,4BAA4B,UAAU;iBACjC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;iBACnD,IAAI,CAAC,IAAI,CAAC,aAAa;YAC5B,SAAS;YACT,GAAG,IAAI,KAAK;YACZ,SAAS;YACT,CAAC,MAAM,CAAC,IAAI,KAAK,IAAI;gBACrB,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,KAAK,MAAM,CAAC;oBACvD,SAAS;gBACT,CAAC,CAAC,gFAAgF;gBAClF,CAAC,CAAC,EAAE,CAAC;YACT,GAAG,CACN,CAAC;IACN,CAAC,CAAC;IAEN,MAAM,YAAY,GAAG,CAAC,KAIrB,EAAU,EAAE;QACT,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,UAAU;YAChC,IAAI,KAAK,CAAC,QAAQ,KAAK,OAAO;gBAC1B,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAC3B,IAAI,KAAK,CAAC,KAAK,EAAE,EACjB,yBAAyB,KAAK,CAAC,IAAI,cAAc,CACpD,CAAC;QAEV,qBAAqB;QACrB,MAAM,WAAW,GAAwB,KAAK,CAAC,UAAU,CAAC,MAAM,CAC5D,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,KAAK,OAAO,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,CACrE,CAAC;QACF,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;YACrD,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,KAAK,CAAC,IAAI,IAAI,CAAC;QAEtD,MAAM,WAAW,GAAG,CAAC,GAAW,EAAU,EAAE,CACxC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,KAAK,SAAS;YACtD,CAAC,CAAC,WAAW,CAAC,GAAG,GAAG,GAAG,CAAC;YACxB,CAAC,CAAC,GAAG,CAAC;QACd,MAAM,SAAS,GAAW,WAAW,CAAC,WAAW,CAAC,CAAC;QACnD,MAAM,MAAM,GAAW,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC7C,MAAM,OAAO,GAAW,WAAW,CAAC,SAAS,CAAC,CAAC;QAE/C,MAAM,OAAO,GAAG,CAAC,IAAY,EAAE,EAAE,CAC7B;YACI,SAAS,SAAS,wBAAwB,IAAI,GAAG;YACjD,SAAS,MAAM,4CAA4C;YAC3D,6CAA6C,SAAS,IAAI;YAC1D,wCAAwC;YACxC,oCAAoC;YACpC,mCAAmC,MAAM,8BAA8B;YACvE,UAAU;YACV,WAAW,MAAM,2BAA2B;YAC5C,SAAS,OAAO,cAAc,MAAM,cAAc;YAClD,YAAY,KAAK,CAAC,IAAI,MAAM,OAAO,mBAAmB,OAAO,cAAc;SAC9E;aACI,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC;aACtC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEpB,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;YACrD,OAAO,OAAO,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,CAAC;aAC5C,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS;YAC9B,OAAO,OAAO,CAAC;;cAEb,qBAAqB,CAAC,WAAW,CAAC;iBAC/B,CAAC,CAAC;QAEX,OAAO,OAAO,CAAC;;iBAEN,KAAK,CAAC,KAAK,CAAC,IAAI;cACnB,qBAAqB,CAAC,WAAW,CAAC;iBAC/B,CAAC,CAAC;IACf,CAAC,CAAC;IAEF,MAAM,qBAAqB,GAAG,CAAC,UAA+B,EAAU,EAAE,CACtE,UAAU;SACL,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACX,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,KAAK;QACtB,CAAC,CAAC,KAAK,CAAC,IAAI;QACZ,CAAC,CAAC,GACI,iBAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAM,CAAC;YAC1B,CAAC,CAAC,KAAK,CAAC,KAAK;YACb,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CACpC,KAAK,KAAK,CAAC,IAAI,EAAE,CAC1B;SACA,IAAI,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC1C,CAAC,EAzWgB,qBAAqB,GAArB,6BAAqB,KAArB,6BAAqB,QAyWrC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { HashMap } from "tstl";
|
|
2
|
+
import { IRoute } from "../../structures/IRoute";
|
|
3
|
+
export declare class SdkRouteDirectory {
|
|
4
|
+
readonly parent: SdkRouteDirectory | null;
|
|
5
|
+
readonly name: string;
|
|
6
|
+
readonly module: string;
|
|
7
|
+
readonly directories: HashMap<string, SdkRouteDirectory>;
|
|
8
|
+
readonly routes: IRoute[];
|
|
9
|
+
constructor(parent: SdkRouteDirectory | null, name: string);
|
|
10
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SdkRouteDirectory = void 0;
|
|
4
|
+
const tstl_1 = require("tstl");
|
|
5
|
+
class SdkRouteDirectory {
|
|
6
|
+
constructor(parent, name) {
|
|
7
|
+
this.parent = parent;
|
|
8
|
+
this.name = name;
|
|
9
|
+
this.directories = new tstl_1.HashMap();
|
|
10
|
+
this.routes = [];
|
|
11
|
+
this.module =
|
|
12
|
+
this.parent !== null
|
|
13
|
+
? `${this.parent.module}.${name}`
|
|
14
|
+
: `api.${name}`;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
exports.SdkRouteDirectory = SdkRouteDirectory;
|
|
18
|
+
//# sourceMappingURL=SdkRouteDirectory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SdkRouteDirectory.js","sourceRoot":"","sources":["../../../src/generates/internal/SdkRouteDirectory.ts"],"names":[],"mappings":";;;AAAA,+BAA+B;AAI/B,MAAa,iBAAiB;IAK1B,YACa,MAAgC,EAChC,IAAY;QADZ,WAAM,GAAN,MAAM,CAA0B;QAChC,SAAI,GAAJ,IAAI,CAAQ;QAErB,IAAI,CAAC,WAAW,GAAG,IAAI,cAAO,EAAE,CAAC;QACjC,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,MAAM;YACP,IAAI,CAAC,MAAM,KAAK,IAAI;gBAChB,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,EAAE;gBACjC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC;IAC5B,CAAC;CACJ;AAhBD,8CAgBC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NestiaConfigUtil = void 0;
|
|
4
|
+
var NestiaConfigUtil;
|
|
5
|
+
(function (NestiaConfigUtil) {
|
|
6
|
+
NestiaConfigUtil.input = (config) => {
|
|
7
|
+
var _a;
|
|
8
|
+
return Array.isArray(config)
|
|
9
|
+
? {
|
|
10
|
+
include: config,
|
|
11
|
+
exclude: [],
|
|
12
|
+
}
|
|
13
|
+
: typeof config === "object"
|
|
14
|
+
? {
|
|
15
|
+
include: config.include,
|
|
16
|
+
exclude: (_a = config.exclude) !== null && _a !== void 0 ? _a : [],
|
|
17
|
+
}
|
|
18
|
+
: {
|
|
19
|
+
include: [config],
|
|
20
|
+
exclude: [],
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
})(NestiaConfigUtil = exports.NestiaConfigUtil || (exports.NestiaConfigUtil = {}));
|
|
24
|
+
//# sourceMappingURL=NestiaConfigUtil.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NestiaConfigUtil.js","sourceRoot":"","sources":["../../src/utils/NestiaConfigUtil.ts"],"names":[],"mappings":";;;AAEA,IAAiB,gBAAgB,CAkBhC;AAlBD,WAAiB,gBAAgB;IAChB,sBAAK,GAAG,CACjB,MAA8B,EACV,EAAE;;QACtB,OAAA,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YACjB,CAAC,CAAC;gBACI,OAAO,EAAE,MAAM;gBACf,OAAO,EAAE,EAAE;aACd;YACH,CAAC,CAAC,OAAO,MAAM,KAAK,QAAQ;gBAC5B,CAAC,CAAC;oBACI,OAAO,EAAE,MAAM,CAAC,OAAO;oBACvB,OAAO,EAAE,MAAA,MAAM,CAAC,OAAO,mCAAI,EAAE;iBAChC;gBACH,CAAC,CAAC;oBACI,OAAO,EAAE,CAAC,MAAM,CAAC;oBACjB,OAAO,EAAE,EAAE;iBACd,CAAA;KAAA,CAAC;AAChB,CAAC,EAlBgB,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAkBhC"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.SourceFinder = void 0;
|
|
16
|
+
const fs_1 = __importDefault(require("fs"));
|
|
17
|
+
const glob_1 = __importDefault(require("glob"));
|
|
18
|
+
const path_1 = __importDefault(require("path"));
|
|
19
|
+
var SourceFinder;
|
|
20
|
+
(function (SourceFinder) {
|
|
21
|
+
SourceFinder.find = (props) => __awaiter(this, void 0, void 0, function* () {
|
|
22
|
+
var _a;
|
|
23
|
+
const dict = new Set();
|
|
24
|
+
yield emplace(props.filter)(props.include)((str) => dict.add(str));
|
|
25
|
+
if ((_a = props.exclude) === null || _a === void 0 ? void 0 : _a.length)
|
|
26
|
+
yield emplace(props.filter)(props.exclude)((str) => dict.delete(str));
|
|
27
|
+
return [...dict];
|
|
28
|
+
});
|
|
29
|
+
const emplace = (filter) => (input) => (closure) => __awaiter(this, void 0, void 0, function* () {
|
|
30
|
+
for (const pattern of input) {
|
|
31
|
+
for (const file of yield _Glob(path_1.default.resolve(pattern))) {
|
|
32
|
+
const stats = yield fs_1.default.promises.stat(file);
|
|
33
|
+
if (stats.isDirectory() === true)
|
|
34
|
+
yield iterate(filter)(closure)(file);
|
|
35
|
+
else if (stats.isFile() && filter(file))
|
|
36
|
+
closure(file);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
const iterate = (filter) => (closure) => (location) => __awaiter(this, void 0, void 0, function* () {
|
|
41
|
+
const directory = yield fs_1.default.promises.readdir(location);
|
|
42
|
+
for (const file of directory) {
|
|
43
|
+
const next = path_1.default.resolve(`${location}/${file}`);
|
|
44
|
+
const stats = yield fs_1.default.promises.stat(next);
|
|
45
|
+
if (stats.isDirectory() === true)
|
|
46
|
+
yield iterate(filter)(closure)(next);
|
|
47
|
+
else if (stats.isFile() && filter(next))
|
|
48
|
+
closure(next);
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
const _Glob = (pattern) => new Promise((resolve, reject) => {
|
|
52
|
+
(0, glob_1.default)(pattern, (err, matches) => {
|
|
53
|
+
if (err)
|
|
54
|
+
reject(err);
|
|
55
|
+
else
|
|
56
|
+
resolve(matches.map((str) => path_1.default.resolve(str)));
|
|
57
|
+
});
|
|
58
|
+
});
|
|
59
|
+
})(SourceFinder = exports.SourceFinder || (exports.SourceFinder = {}));
|
|
60
|
+
//# sourceMappingURL=SourceFinder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SourceFinder.js","sourceRoot":"","sources":["../../src/utils/SourceFinder.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nestia/sdk",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.0-dev.20230504-2",
|
|
4
4
|
"description": "Nestia SDK and Swagger generator",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"typings": "lib/index.d.ts",
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"tsconfck": "^2.0.1",
|
|
43
43
|
"tsconfig-paths": "^4.1.1",
|
|
44
44
|
"tstl": "^2.5.13",
|
|
45
|
-
"typia": "^3.8.
|
|
45
|
+
"typia": "^3.8.4"
|
|
46
46
|
},
|
|
47
47
|
"peerDependencies": {
|
|
48
48
|
"@nestjs/common": ">= 7.0.1",
|
|
@@ -52,7 +52,6 @@
|
|
|
52
52
|
"typescript": ">= 4.5.2"
|
|
53
53
|
},
|
|
54
54
|
"devDependencies": {
|
|
55
|
-
"@nestia/core": "^1.1.0",
|
|
56
55
|
"@nestia/fetcher": "^1.1.2",
|
|
57
56
|
"@trivago/prettier-plugin-sort-imports": "^4.0.0",
|
|
58
57
|
"@types/cli": "^0.11.21",
|
package/src/INestiaConfig.ts
CHANGED
|
@@ -21,6 +21,13 @@ export interface INestiaConfig {
|
|
|
21
21
|
*/
|
|
22
22
|
output?: string;
|
|
23
23
|
|
|
24
|
+
/**
|
|
25
|
+
* Otput directory that e2e test codes would be placed in.
|
|
26
|
+
*
|
|
27
|
+
* If not configured, you can't generate e2e test functions.
|
|
28
|
+
*/
|
|
29
|
+
e2e?: string;
|
|
30
|
+
|
|
24
31
|
/**
|
|
25
32
|
* Compiler options for the TypeScript.
|
|
26
33
|
*
|
|
@@ -1,20 +1,21 @@
|
|
|
1
1
|
import fs from "fs";
|
|
2
2
|
import path from "path";
|
|
3
3
|
import * as runner from "ts-node";
|
|
4
|
-
import { Singleton } from "tstl
|
|
5
|
-
import { Pair } from "tstl/utility/Pair";
|
|
4
|
+
import { Pair, Singleton } from "tstl";
|
|
6
5
|
import ts from "typescript";
|
|
7
6
|
|
|
8
7
|
import { INestiaConfig } from "./INestiaConfig";
|
|
9
8
|
import { ControllerAnalyzer } from "./analyses/ControllerAnalyzer";
|
|
10
9
|
import { ReflectAnalyzer } from "./analyses/ReflectAnalyzer";
|
|
11
|
-
import { SourceFinder } from "./analyses/SourceFinder";
|
|
12
10
|
import { NestiaConfigCompilerOptions } from "./executable/internal/NestiaConfigCompilerOptions";
|
|
11
|
+
import { E2eGenerator } from "./generates/E2eGenerator";
|
|
13
12
|
import { SdkGenerator } from "./generates/SdkGenerator";
|
|
14
13
|
import { SwaggerGenerator } from "./generates/SwaggerGenerator";
|
|
15
14
|
import { IController } from "./structures/IController";
|
|
16
15
|
import { IRoute } from "./structures/IRoute";
|
|
17
16
|
import { ArrayUtil } from "./utils/ArrayUtil";
|
|
17
|
+
import { NestiaConfigUtil } from "./utils/NestiaConfigUtil";
|
|
18
|
+
import { SourceFinder } from "./utils/SourceFinder";
|
|
18
19
|
|
|
19
20
|
export class NestiaSdkApplication {
|
|
20
21
|
private readonly config_: INestiaConfig;
|
|
@@ -57,6 +58,39 @@ export class NestiaSdkApplication {
|
|
|
57
58
|
});
|
|
58
59
|
}
|
|
59
60
|
|
|
61
|
+
public async e2e(): Promise<void> {
|
|
62
|
+
if (!this.config_.output)
|
|
63
|
+
throw new Error(
|
|
64
|
+
"Error on NestiaApplication.e2e(): output path of SDK is not specified.",
|
|
65
|
+
);
|
|
66
|
+
else if (!this.config_.e2e)
|
|
67
|
+
throw new Error(
|
|
68
|
+
"Error on NestiaApplication.e2e(): output path of e2e test files is not specified.",
|
|
69
|
+
);
|
|
70
|
+
|
|
71
|
+
const validate =
|
|
72
|
+
(title: string) =>
|
|
73
|
+
async (location: string): Promise<void> => {
|
|
74
|
+
const parent: string = path.resolve(location + "/..");
|
|
75
|
+
const stats: fs.Stats = await fs.promises.lstat(parent);
|
|
76
|
+
if (stats.isDirectory() === false)
|
|
77
|
+
throw new Error(
|
|
78
|
+
`Error on NestiaApplication.e2e(): output directory of ${title} does not exists.`,
|
|
79
|
+
);
|
|
80
|
+
};
|
|
81
|
+
await validate("sdk")(this.config_.output);
|
|
82
|
+
await validate("e2e")(this.config_.e2e);
|
|
83
|
+
|
|
84
|
+
await this.generate(
|
|
85
|
+
(config) => config,
|
|
86
|
+
() => SdkGenerator.generate,
|
|
87
|
+
);
|
|
88
|
+
await this.generate(
|
|
89
|
+
(config) => config,
|
|
90
|
+
() => E2eGenerator.generate,
|
|
91
|
+
);
|
|
92
|
+
}
|
|
93
|
+
|
|
60
94
|
public async sdk(): Promise<void> {
|
|
61
95
|
if (!this.config_.output)
|
|
62
96
|
throw new Error(
|
|
@@ -69,12 +103,14 @@ export class NestiaSdkApplication {
|
|
|
69
103
|
throw new Error(
|
|
70
104
|
"Error on NestiaApplication.sdk(): output directory does not exists.",
|
|
71
105
|
);
|
|
72
|
-
|
|
73
|
-
|
|
106
|
+
await this.generate(
|
|
107
|
+
(config) => config,
|
|
108
|
+
() => SdkGenerator.generate,
|
|
109
|
+
);
|
|
74
110
|
}
|
|
75
111
|
|
|
76
112
|
public async swagger(): Promise<void> {
|
|
77
|
-
if (!this.config_.swagger
|
|
113
|
+
if (!this.config_.swagger?.output)
|
|
78
114
|
throw new Error(
|
|
79
115
|
`Error on NestiaApplication.swagger(): output path of the "swagger.json" is not specified.`,
|
|
80
116
|
);
|
|
@@ -99,22 +135,23 @@ export class NestiaSdkApplication {
|
|
|
99
135
|
config: (entire: INestiaConfig) => Config,
|
|
100
136
|
archiver: (
|
|
101
137
|
checker: ts.TypeChecker,
|
|
102
|
-
|
|
103
|
-
routes: IRoute[],
|
|
104
|
-
) => Promise<void>,
|
|
138
|
+
) => (config: Config) => (routes: IRoute[]) => Promise<void>,
|
|
105
139
|
): Promise<void> {
|
|
106
140
|
// MOUNT TS-NODE
|
|
107
141
|
this.prepare();
|
|
108
142
|
|
|
109
143
|
// LOAD CONTROLLER FILES
|
|
110
|
-
const input: INestiaConfig.IInput =
|
|
111
|
-
this.config_.input
|
|
112
|
-
|
|
113
|
-
: typeof this.config_.input === "string"
|
|
114
|
-
? { include: [this.config_.input] }
|
|
115
|
-
: this.config_.input;
|
|
144
|
+
const input: INestiaConfig.IInput = NestiaConfigUtil.input(
|
|
145
|
+
this.config_.input,
|
|
146
|
+
);
|
|
116
147
|
const fileList: string[] = await ArrayUtil.asyncFilter(
|
|
117
|
-
await SourceFinder.find(
|
|
148
|
+
await SourceFinder.find({
|
|
149
|
+
include: input.include,
|
|
150
|
+
exclude: input.exclude,
|
|
151
|
+
filter: (file) =>
|
|
152
|
+
file.substring(file.length - 3) === ".ts" &&
|
|
153
|
+
file.substring(file.length - 5) !== ".d.ts",
|
|
154
|
+
}),
|
|
118
155
|
(file) => this.is_not_excluded(file),
|
|
119
156
|
);
|
|
120
157
|
|
|
@@ -147,7 +184,7 @@ export class NestiaSdkApplication {
|
|
|
147
184
|
}
|
|
148
185
|
|
|
149
186
|
// DO GENERATE
|
|
150
|
-
await archiver(checker
|
|
187
|
+
await archiver(checker)(config(this.config_))(routeList);
|
|
151
188
|
}
|
|
152
189
|
|
|
153
190
|
private prepare(): void {
|
|
@@ -250,15 +250,25 @@ export namespace ReflectAnalyzer {
|
|
|
250
250
|
field: param.data,
|
|
251
251
|
encrypted: param.factory.name === "EncryptedBody",
|
|
252
252
|
};
|
|
253
|
-
} else if (param.factory.name === "TypedParam")
|
|
253
|
+
} else if (param.factory.name === "TypedParam") {
|
|
254
254
|
return {
|
|
255
255
|
name: param.name,
|
|
256
256
|
category: "param",
|
|
257
257
|
index: param.index,
|
|
258
258
|
field: param.data,
|
|
259
259
|
encrypted: false,
|
|
260
|
+
meta: (() => {
|
|
261
|
+
const type = (param.factory as any).type;
|
|
262
|
+
const nullable = (param.factory as any).nullable;
|
|
263
|
+
if (type !== undefined && nullable !== undefined)
|
|
264
|
+
return {
|
|
265
|
+
type,
|
|
266
|
+
nullable,
|
|
267
|
+
};
|
|
268
|
+
return undefined;
|
|
269
|
+
})(),
|
|
260
270
|
};
|
|
261
|
-
else if (param.factory.name === "TypedQuery")
|
|
271
|
+
} else if (param.factory.name === "TypedQuery")
|
|
262
272
|
return {
|
|
263
273
|
name: param.name,
|
|
264
274
|
category: "query",
|