@nestia/core 11.0.0-dev.20260313-4 → 11.0.0-dev.20260316
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/options/INestiaTransformOptions.d.ts +1 -1
- package/lib/programmers/PlainBodyProgrammer.js +1 -1
- package/lib/programmers/PlainBodyProgrammer.js.map +1 -1
- package/lib/programmers/TypedBodyProgrammer.js +6 -3
- package/lib/programmers/TypedBodyProgrammer.js.map +1 -1
- package/lib/programmers/TypedQueryBodyProgrammer.js +9 -4
- package/lib/programmers/TypedQueryBodyProgrammer.js.map +1 -1
- package/lib/programmers/TypedQueryProgrammer.js +9 -4
- package/lib/programmers/TypedQueryProgrammer.js.map +1 -1
- package/lib/programmers/TypedQueryRouteProgrammer.js +14 -8
- package/lib/programmers/TypedQueryRouteProgrammer.js.map +1 -1
- package/lib/programmers/TypedRouteProgrammer.js +11 -6
- package/lib/programmers/TypedRouteProgrammer.js.map +1 -1
- package/package.json +8 -8
- package/src/decorators/DynamicModule.ts +44 -44
- package/src/decorators/PlainBody.ts +76 -76
- package/src/decorators/SwaggerExample.ts +100 -100
- package/src/decorators/TypedBody.ts +57 -57
- package/src/decorators/TypedException.ts +147 -147
- package/src/decorators/TypedHeaders.ts +66 -66
- package/src/decorators/TypedParam.ts +77 -77
- package/src/decorators/TypedQuery.ts +234 -234
- package/src/decorators/WebSocketRoute.ts +242 -242
- package/src/decorators/internal/EncryptedConstant.ts +2 -2
- package/src/decorators/internal/IWebSocketRouteReflect.ts +23 -23
- package/src/decorators/internal/NoTransformConfigureError.ts +2 -2
- package/src/decorators/internal/get_path_and_querify.ts +94 -94
- package/src/decorators/internal/get_path_and_stringify.ts +110 -110
- package/src/decorators/internal/get_text_body.ts +16 -16
- package/src/decorators/internal/is_request_body_undefined.ts +12 -12
- package/src/decorators/internal/load_controller.ts +45 -45
- package/src/decorators/internal/route_error.ts +43 -43
- package/src/decorators/internal/validate_request_body.ts +64 -64
- package/src/decorators/internal/validate_request_form_data.ts +67 -67
- package/src/decorators/internal/validate_request_headers.ts +76 -76
- package/src/decorators/internal/validate_request_query.ts +64 -64
- package/src/index.ts +5 -5
- package/src/options/INestiaTransformOptions.ts +1 -1
- package/src/options/IRequestBodyValidator.ts +20 -20
- package/src/options/IRequestFormDataProps.ts +27 -27
- package/src/options/IRequestHeadersValidator.ts +22 -22
- package/src/options/IRequestQueryValidator.ts +20 -20
- package/src/options/IResponseBodyQuerifier.ts +25 -25
- package/src/options/IResponseBodyStringifier.ts +30 -30
- package/src/programmers/PlainBodyProgrammer.ts +1 -1
- package/src/programmers/TypedBodyProgrammer.ts +7 -3
- package/src/programmers/TypedQueryBodyProgrammer.ts +11 -9
- package/src/programmers/TypedQueryProgrammer.ts +11 -9
- package/src/programmers/TypedQueryRouteProgrammer.ts +19 -16
- package/src/programmers/TypedRouteProgrammer.ts +14 -7
- package/src/transformers/NodeTransformer.ts +23 -23
- package/src/transformers/ParameterTransformer.ts +57 -57
- package/src/typings/Creator.ts +3 -3
- package/src/typings/get-function-location.d.ts +7 -7
- package/src/utils/ArrayUtil.ts +7 -7
- package/src/utils/ExceptionManager.ts +115 -115
- package/src/utils/Singleton.ts +16 -16
- package/src/utils/SourceFinder.ts +54 -54
- package/src/utils/VersioningStrategy.ts +27 -27
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export interface INestiaTransformOptions {
|
|
2
2
|
validate?: INestiaTransformOptions.Validate;
|
|
3
3
|
stringify?: INestiaTransformOptions.Stringify | null;
|
|
4
|
-
llm?: INestiaTransformOptions.ILlm;
|
|
4
|
+
llm?: boolean | INestiaTransformOptions.ILlm;
|
|
5
5
|
throws?: boolean;
|
|
6
6
|
}
|
|
7
7
|
export declare namespace INestiaTransformOptions {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlainBodyProgrammer.js","sourceRoot":"","sources":["../../src/programmers/PlainBodyProgrammer.ts"],"names":[],"mappings":";;;AAAA,sCAMqB;AAKrB,IAAiB,mBAAmB,CAyCnC;AAzCD,WAAiB,mBAAmB;IACrB,4BAAQ,GAAG,CAAC,KAIxB,EAAiB,EAAE;QAClB,MAAM,MAAM,GAAG,sBAAe,CAAC,OAAO,CAAC;YACrC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO;YAC9B,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,WAAW;YACtC,OAAO,EAAE;gBACP,MAAM,EAAE,KAAK;gBACb,QAAQ,EAAE,IAAI;gBACd,MAAM,EAAE,IAAI;gBACZ,QAAQ;
|
|
1
|
+
{"version":3,"file":"PlainBodyProgrammer.js","sourceRoot":"","sources":["../../src/programmers/PlainBodyProgrammer.ts"],"names":[],"mappings":";;;AAAA,sCAMqB;AAKrB,IAAiB,mBAAmB,CAyCnC;AAzCD,WAAiB,mBAAmB;IACrB,4BAAQ,GAAG,CAAC,KAIxB,EAAiB,EAAE;QAClB,MAAM,MAAM,GAAG,sBAAe,CAAC,OAAO,CAAC;YACrC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO;YAC9B,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,WAAW;YACtC,OAAO,EAAE;gBACP,MAAM,EAAE,KAAK;gBACb,QAAQ,EAAE,IAAI;gBACd,MAAM,EAAE,IAAI;gBACZ,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC;aAC/C;YACD,UAAU,EAAE,IAAI,yBAAkB,EAAE;YACpC,IAAI,EAAE,KAAK,CAAC,IAAI;SACjB,CAAC,CAAC;QACH,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK;YAC1B,MAAM,uBAAgB,CAAC,IAAI,CAAC;gBAC1B,IAAI,EAAE,wBAAwB;gBAC9B,MAAM,EAAE,MAAM,CAAC,MAAM;aACtB,CAAC,CAAC;QACL,OAAO,uBAAgB,CAAC,KAAK,CAAC;YAC5B,OAAO,kCACF,KAAK,CAAC,OAAO,KAChB,OAAO,EAAE;oBACP,OAAO,EAAE,KAAK;oBACd,MAAM,EAAE,KAAK;oBACb,UAAU,EAAE,KAAK;iBAClB,GACF;YACD,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,MAAM,EAAE;gBACN,MAAM,EAAE,KAAK;gBACb,KAAK,EAAE,KAAK;aACb;YACD,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,IAAI,EAAE,SAAS;SAChB,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC,EAzCgB,mBAAmB,mCAAnB,mBAAmB,QAyCnC;AAED,MAAM,QAAQ,GAAG,CAAC,QAAwB,EAAY,EAAE;IACtD,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,MAAM,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEjD,MAAM,QAAQ,GACZ,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3D,QAAQ,CAAC,SAAS,CAAC,MAAM;QACzB,QAAQ,CAAC,SAAS;aACf,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC;aAClC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;aAC3B,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAChC,IAAI,QAAQ,KAAK,CAAC,IAAI,QAAQ,KAAK,QAAQ,CAAC,IAAI,EAAE;QAChD,MAAM,CAAC,6BAA6B,CAAC,CAAC;IACxC,IAAI,QAAQ,CAAC,QAAQ,KAAK,IAAI;QAAE,MAAM,CAAC,4BAA4B,CAAC,CAAC;SAChE,IAAI,QAAQ,CAAC,GAAG,KAAK,IAAI;QAAE,MAAM,CAAC,uBAAuB,CAAC,CAAC;IAEhE,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"}
|
|
@@ -16,13 +16,16 @@ var TypedBodyProgrammer;
|
|
|
16
16
|
transformer: props.context.transformer,
|
|
17
17
|
type: props.type,
|
|
18
18
|
validate: props.context.options.llm
|
|
19
|
-
? (
|
|
19
|
+
? (next) => {
|
|
20
20
|
var _a, _b;
|
|
21
21
|
return core_1.LlmSchemaProgrammer.validate({
|
|
22
22
|
config: {
|
|
23
|
-
strict:
|
|
23
|
+
strict: typeof props.context.options.llm === "boolean"
|
|
24
|
+
? false
|
|
25
|
+
: ((_b = (_a = props.context.options.llm) === null || _a === void 0 ? void 0 : _a.strict) !== null && _b !== void 0 ? _b : false),
|
|
24
26
|
},
|
|
25
|
-
metadata,
|
|
27
|
+
metadata: next.metadata,
|
|
28
|
+
explore: next.explore,
|
|
26
29
|
});
|
|
27
30
|
}
|
|
28
31
|
: undefined,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TypedBodyProgrammer.js","sourceRoot":"","sources":["../../src/programmers/TypedBodyProgrammer.ts"],"names":[],"mappings":";;;;;;AAAA,sCAWqB;AACrB,4DAA4B;AAK5B,IAAiB,mBAAmB,
|
|
1
|
+
{"version":3,"file":"TypedBodyProgrammer.js","sourceRoot":"","sources":["../../src/programmers/TypedBodyProgrammer.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,14 +19,19 @@ var TypedQueryBodyProgrammer;
|
|
|
19
19
|
escape: false,
|
|
20
20
|
constant: true,
|
|
21
21
|
absorb: true,
|
|
22
|
-
validate: (
|
|
22
|
+
validate: (next) => {
|
|
23
23
|
var _a;
|
|
24
|
-
const errors = core_1.HttpQueryProgrammer.validate(
|
|
24
|
+
const errors = core_1.HttpQueryProgrammer.validate({
|
|
25
|
+
metadata: next.metadata,
|
|
26
|
+
explore: next.explore,
|
|
27
|
+
allowOptional: true,
|
|
28
|
+
});
|
|
25
29
|
errors.push(...core_1.LlmSchemaProgrammer.validate({
|
|
26
30
|
config: {
|
|
27
|
-
strict: (_a = llm.strict) !== null && _a !== void 0 ? _a : false,
|
|
31
|
+
strict: llm === true ? false : ((_a = llm.strict) !== null && _a !== void 0 ? _a : false),
|
|
28
32
|
},
|
|
29
|
-
metadata:
|
|
33
|
+
metadata: next.metadata,
|
|
34
|
+
explore: next.explore,
|
|
30
35
|
}));
|
|
31
36
|
return errors;
|
|
32
37
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TypedQueryBodyProgrammer.js","sourceRoot":"","sources":["../../src/programmers/TypedQueryBodyProgrammer.ts"],"names":[],"mappings":";;;;;;AAAA,sCAWqB;AAErB,4DAA4B;AAM5B,IAAiB,wBAAwB,
|
|
1
|
+
{"version":3,"file":"TypedQueryBodyProgrammer.js","sourceRoot":"","sources":["../../src/programmers/TypedQueryBodyProgrammer.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,14 +19,19 @@ var TypedQueryProgrammer;
|
|
|
19
19
|
escape: false,
|
|
20
20
|
constant: true,
|
|
21
21
|
absorb: true,
|
|
22
|
-
validate: (
|
|
22
|
+
validate: (next) => {
|
|
23
23
|
var _a;
|
|
24
|
-
const errors = core_1.HttpQueryProgrammer.validate(
|
|
24
|
+
const errors = core_1.HttpQueryProgrammer.validate({
|
|
25
|
+
metadata: next.metadata,
|
|
26
|
+
explore: next.explore,
|
|
27
|
+
allowOptional: true,
|
|
28
|
+
});
|
|
25
29
|
errors.push(...core_1.LlmSchemaProgrammer.validate({
|
|
26
30
|
config: {
|
|
27
|
-
strict: (_a = llm.strict) !== null && _a !== void 0 ? _a : false,
|
|
31
|
+
strict: llm === true ? false : ((_a = llm.strict) !== null && _a !== void 0 ? _a : false),
|
|
28
32
|
},
|
|
29
|
-
metadata:
|
|
33
|
+
metadata: next.metadata,
|
|
34
|
+
explore: next.explore,
|
|
30
35
|
}));
|
|
31
36
|
return errors;
|
|
32
37
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TypedQueryProgrammer.js","sourceRoot":"","sources":["../../src/programmers/TypedQueryProgrammer.ts"],"names":[],"mappings":";;;;;;AAAA,sCAWqB;AAErB,4DAA4B;AAM5B,IAAiB,oBAAoB,
|
|
1
|
+
{"version":3,"file":"TypedQueryProgrammer.js","sourceRoot":"","sources":["../../src/programmers/TypedQueryProgrammer.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,15 +23,21 @@ var TypedQueryRouteProgrammer;
|
|
|
23
23
|
escape: false,
|
|
24
24
|
constant: true,
|
|
25
25
|
absorb: true,
|
|
26
|
-
validate: (
|
|
26
|
+
validate: (next) => {
|
|
27
27
|
var _a;
|
|
28
|
-
const errors = core_1.HttpQueryProgrammer.validate(
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
28
|
+
const errors = core_1.HttpQueryProgrammer.validate({
|
|
29
|
+
metadata: next.metadata,
|
|
30
|
+
explore: next.explore,
|
|
31
|
+
allowOptional: true,
|
|
32
|
+
});
|
|
33
|
+
if (next.metadata.size() !== 0)
|
|
34
|
+
errors.push(...core_1.LlmParametersProgrammer.validate({
|
|
35
|
+
config: {
|
|
36
|
+
strict: llm === true ? false : ((_a = llm.strict) !== null && _a !== void 0 ? _a : false),
|
|
37
|
+
},
|
|
38
|
+
metadata: next.metadata,
|
|
39
|
+
explore: next.explore,
|
|
40
|
+
}));
|
|
35
41
|
return errors;
|
|
36
42
|
},
|
|
37
43
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TypedQueryRouteProgrammer.js","sourceRoot":"","sources":["../../src/programmers/TypedQueryRouteProgrammer.ts"],"names":[],"mappings":";;;;;;AAAA,sCAQqB;AAErB,4DAA4B;AAI5B,oFAAiF;AACjF,4EAAyE;AACzE,wEAAqE;AACrE,wFAAqF;AAErF,IAAiB,yBAAyB,
|
|
1
|
+
{"version":3,"file":"TypedQueryRouteProgrammer.js","sourceRoot":"","sources":["../../src/programmers/TypedQueryRouteProgrammer.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,22 +10,27 @@ var TypedRouteProgrammer;
|
|
|
10
10
|
(function (TypedRouteProgrammer) {
|
|
11
11
|
TypedRouteProgrammer.generate = (props) => {
|
|
12
12
|
// VALIDATE TYPE
|
|
13
|
-
if (props.context.options.llm)
|
|
13
|
+
if (props.context.options.llm) {
|
|
14
|
+
const llm = props.context.options.llm;
|
|
14
15
|
core_1.JsonMetadataFactory.analyze({
|
|
15
16
|
method: "@nestia.core.TypedRoute",
|
|
16
17
|
checker: props.context.checker,
|
|
17
18
|
transformer: props.context.transformer,
|
|
18
19
|
type: props.type,
|
|
19
|
-
validate: (
|
|
20
|
-
var _a
|
|
21
|
-
|
|
20
|
+
validate: (next) => {
|
|
21
|
+
var _a;
|
|
22
|
+
if (next.metadata.size() === 0)
|
|
23
|
+
return [];
|
|
24
|
+
return core_1.LlmParametersProgrammer.validate({
|
|
22
25
|
config: {
|
|
23
|
-
strict:
|
|
26
|
+
strict: llm === true ? false : ((_a = llm.strict) !== null && _a !== void 0 ? _a : false),
|
|
24
27
|
},
|
|
25
|
-
metadata,
|
|
28
|
+
metadata: next.metadata,
|
|
29
|
+
explore: next.explore,
|
|
26
30
|
});
|
|
27
31
|
},
|
|
28
32
|
});
|
|
33
|
+
}
|
|
29
34
|
// GENERATE STRINGIFY PLAN
|
|
30
35
|
const parameter = (next) => typescript_1.default.factory.createObjectLiteralExpression([
|
|
31
36
|
typescript_1.default.factory.createPropertyAssignment(typescript_1.default.factory.createIdentifier("type"), typescript_1.default.factory.createStringLiteral(next.type)),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TypedRouteProgrammer.js","sourceRoot":"","sources":["../../src/programmers/TypedRouteProgrammer.ts"],"names":[],"mappings":";;;;;;AAAA,sCAQqB;AACrB,4DAA4B;
|
|
1
|
+
{"version":3,"file":"TypedRouteProgrammer.js","sourceRoot":"","sources":["../../src/programmers/TypedRouteProgrammer.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nestia/core",
|
|
3
|
-
"version": "11.0.0-dev.
|
|
3
|
+
"version": "11.0.0-dev.20260316",
|
|
4
4
|
"description": "Super-fast validation decorators of NestJS",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"exports": {
|
|
@@ -39,9 +39,9 @@
|
|
|
39
39
|
},
|
|
40
40
|
"homepage": "https://nestia.io",
|
|
41
41
|
"dependencies": {
|
|
42
|
-
"@typia/core": "12.0.0-dev.
|
|
43
|
-
"@typia/interface": "12.0.0-dev.
|
|
44
|
-
"@typia/utils": "12.0.0-dev.
|
|
42
|
+
"@typia/core": "12.0.0-dev.20260316",
|
|
43
|
+
"@typia/interface": "12.0.0-dev.20260316",
|
|
44
|
+
"@typia/utils": "12.0.0-dev.20260316",
|
|
45
45
|
"detect-ts-node": "^1.0.5",
|
|
46
46
|
"get-function-location": "^2.0.0",
|
|
47
47
|
"glob": "^11.0.3",
|
|
@@ -50,17 +50,17 @@
|
|
|
50
50
|
"reflect-metadata": ">=0.1.12",
|
|
51
51
|
"rxjs": ">=6.0.3",
|
|
52
52
|
"tgrid": "^1.1.0",
|
|
53
|
-
"typia": "12.0.0-dev.
|
|
53
|
+
"typia": "12.0.0-dev.20260316",
|
|
54
54
|
"ws": "^7.5.3",
|
|
55
|
-
"@nestia/fetcher": "^11.0.0-dev.
|
|
55
|
+
"@nestia/fetcher": "^11.0.0-dev.20260316"
|
|
56
56
|
},
|
|
57
57
|
"peerDependencies": {
|
|
58
58
|
"@nestjs/common": ">=7.0.1",
|
|
59
59
|
"@nestjs/core": ">=7.0.1",
|
|
60
60
|
"reflect-metadata": ">=0.1.12",
|
|
61
61
|
"rxjs": ">=6.0.3",
|
|
62
|
-
"typia": "12.0.0-dev.
|
|
63
|
-
"@nestia/fetcher": "^11.0.0-dev.
|
|
62
|
+
"typia": "12.0.0-dev.20260316",
|
|
63
|
+
"@nestia/fetcher": "^11.0.0-dev.20260316"
|
|
64
64
|
},
|
|
65
65
|
"devDependencies": {
|
|
66
66
|
"@nestjs/common": "^11.1.6",
|
|
@@ -1,44 +1,44 @@
|
|
|
1
|
-
import { Module } from "@nestjs/common";
|
|
2
|
-
import { ModuleMetadata } from "@nestjs/common/interfaces";
|
|
3
|
-
|
|
4
|
-
import { Creator } from "../typings/Creator";
|
|
5
|
-
import { load_controllers } from "./internal/load_controller";
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* Dynamic module.
|
|
9
|
-
*
|
|
10
|
-
* `DynamicModule` is a namespace wrapping a convenient function, which can load
|
|
11
|
-
* controller classes dynamically just by specifying their directory path.
|
|
12
|
-
*
|
|
13
|
-
* @author Jeongho Nam - https://github.com/samchon
|
|
14
|
-
*/
|
|
15
|
-
export namespace DynamicModule {
|
|
16
|
-
/**
|
|
17
|
-
* Mount dynamic module.
|
|
18
|
-
*
|
|
19
|
-
* Constructs a module instance with directory path of controller classes.
|
|
20
|
-
*
|
|
21
|
-
* Every controller classes in the target directory would be dynamically
|
|
22
|
-
* mounted.
|
|
23
|
-
*
|
|
24
|
-
* @param path Path of controllers
|
|
25
|
-
* @param metadata Additional metadata except controllers
|
|
26
|
-
* @returns Module instance
|
|
27
|
-
*/
|
|
28
|
-
export async function mount(
|
|
29
|
-
path: string | string[] | { include: string[]; exclude?: string[] },
|
|
30
|
-
metadata: Omit<ModuleMetadata, "controllers"> = {},
|
|
31
|
-
isTsNode?: boolean,
|
|
32
|
-
) {
|
|
33
|
-
// LOAD CONTROLLERS
|
|
34
|
-
const controllers: Creator<object>[] = await load_controllers(
|
|
35
|
-
path,
|
|
36
|
-
isTsNode,
|
|
37
|
-
);
|
|
38
|
-
|
|
39
|
-
// RETURN WITH DECORATING
|
|
40
|
-
@Module({ ...metadata, controllers })
|
|
41
|
-
class NestiaModule {}
|
|
42
|
-
return NestiaModule;
|
|
43
|
-
}
|
|
44
|
-
}
|
|
1
|
+
import { Module } from "@nestjs/common";
|
|
2
|
+
import { ModuleMetadata } from "@nestjs/common/interfaces";
|
|
3
|
+
|
|
4
|
+
import { Creator } from "../typings/Creator";
|
|
5
|
+
import { load_controllers } from "./internal/load_controller";
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Dynamic module.
|
|
9
|
+
*
|
|
10
|
+
* `DynamicModule` is a namespace wrapping a convenient function, which can load
|
|
11
|
+
* controller classes dynamically just by specifying their directory path.
|
|
12
|
+
*
|
|
13
|
+
* @author Jeongho Nam - https://github.com/samchon
|
|
14
|
+
*/
|
|
15
|
+
export namespace DynamicModule {
|
|
16
|
+
/**
|
|
17
|
+
* Mount dynamic module.
|
|
18
|
+
*
|
|
19
|
+
* Constructs a module instance with directory path of controller classes.
|
|
20
|
+
*
|
|
21
|
+
* Every controller classes in the target directory would be dynamically
|
|
22
|
+
* mounted.
|
|
23
|
+
*
|
|
24
|
+
* @param path Path of controllers
|
|
25
|
+
* @param metadata Additional metadata except controllers
|
|
26
|
+
* @returns Module instance
|
|
27
|
+
*/
|
|
28
|
+
export async function mount(
|
|
29
|
+
path: string | string[] | { include: string[]; exclude?: string[] },
|
|
30
|
+
metadata: Omit<ModuleMetadata, "controllers"> = {},
|
|
31
|
+
isTsNode?: boolean,
|
|
32
|
+
) {
|
|
33
|
+
// LOAD CONTROLLERS
|
|
34
|
+
const controllers: Creator<object>[] = await load_controllers(
|
|
35
|
+
path,
|
|
36
|
+
isTsNode,
|
|
37
|
+
);
|
|
38
|
+
|
|
39
|
+
// RETURN WITH DECORATING
|
|
40
|
+
@Module({ ...metadata, controllers })
|
|
41
|
+
class NestiaModule {}
|
|
42
|
+
return NestiaModule;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
@@ -1,76 +1,76 @@
|
|
|
1
|
-
import {
|
|
2
|
-
BadRequestException,
|
|
3
|
-
ExecutionContext,
|
|
4
|
-
createParamDecorator,
|
|
5
|
-
} from "@nestjs/common";
|
|
6
|
-
import type express from "express";
|
|
7
|
-
import type { FastifyRequest } from "fastify";
|
|
8
|
-
|
|
9
|
-
import { get_text_body } from "./internal/get_text_body";
|
|
10
|
-
import { is_request_body_undefined } from "./internal/is_request_body_undefined";
|
|
11
|
-
import { validate_request_body } from "./internal/validate_request_body";
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* Plain body decorator.
|
|
15
|
-
*
|
|
16
|
-
* `PlainBody` is a decorator function getting full body text from the HTTP
|
|
17
|
-
* request.
|
|
18
|
-
*
|
|
19
|
-
* If you adjust the regular {@link Body} decorator function to the body
|
|
20
|
-
* parameter, you can't get the full body text because the {@link Body} tries to
|
|
21
|
-
* convert the body text to JSON object. Therefore, `@nestia/core` provides this
|
|
22
|
-
* `PlainBody` decorator function to get the full body text.
|
|
23
|
-
*
|
|
24
|
-
* ```typescript
|
|
25
|
-
* \@TypedRoute.Post("memo")
|
|
26
|
-
* public store
|
|
27
|
-
* (
|
|
28
|
-
* \@PlainBody() body: string
|
|
29
|
-
* ): void;
|
|
30
|
-
* ```
|
|
31
|
-
*
|
|
32
|
-
* @author Jeongho Nam - https://github.com/samchon
|
|
33
|
-
* @returns Parameter decorator
|
|
34
|
-
*/
|
|
35
|
-
export function PlainBody(): ParameterDecorator;
|
|
36
|
-
|
|
37
|
-
/** @internal */
|
|
38
|
-
export function PlainBody(
|
|
39
|
-
assert?: (input: unknown) => string,
|
|
40
|
-
): ParameterDecorator {
|
|
41
|
-
const checker = assert
|
|
42
|
-
? validate_request_body("PlainBody")({
|
|
43
|
-
type: "assert",
|
|
44
|
-
assert,
|
|
45
|
-
})
|
|
46
|
-
: null;
|
|
47
|
-
return createParamDecorator(async function PlainBody(
|
|
48
|
-
_data: any,
|
|
49
|
-
context: ExecutionContext,
|
|
50
|
-
) {
|
|
51
|
-
const request: express.Request | FastifyRequest = context
|
|
52
|
-
.switchToHttp()
|
|
53
|
-
.getRequest();
|
|
54
|
-
if (
|
|
55
|
-
is_request_body_undefined(request) &&
|
|
56
|
-
(checker ?? (() => null))(undefined as any) === null
|
|
57
|
-
)
|
|
58
|
-
return undefined;
|
|
59
|
-
else if (!isTextPlain(request.headers["content-type"]))
|
|
60
|
-
throw new BadRequestException(`Request body type is not "text/plain".`);
|
|
61
|
-
const value: string = await get_text_body(request);
|
|
62
|
-
if (checker) {
|
|
63
|
-
const error: Error | null = checker(value);
|
|
64
|
-
if (error !== null) throw error;
|
|
65
|
-
}
|
|
66
|
-
return value;
|
|
67
|
-
})();
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
/** @internal */
|
|
71
|
-
const isTextPlain = (text?: string): boolean =>
|
|
72
|
-
text !== undefined &&
|
|
73
|
-
text
|
|
74
|
-
.split(";")
|
|
75
|
-
.map((str) => str.trim())
|
|
76
|
-
.some((str) => str === "text/plain");
|
|
1
|
+
import {
|
|
2
|
+
BadRequestException,
|
|
3
|
+
ExecutionContext,
|
|
4
|
+
createParamDecorator,
|
|
5
|
+
} from "@nestjs/common";
|
|
6
|
+
import type express from "express";
|
|
7
|
+
import type { FastifyRequest } from "fastify";
|
|
8
|
+
|
|
9
|
+
import { get_text_body } from "./internal/get_text_body";
|
|
10
|
+
import { is_request_body_undefined } from "./internal/is_request_body_undefined";
|
|
11
|
+
import { validate_request_body } from "./internal/validate_request_body";
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Plain body decorator.
|
|
15
|
+
*
|
|
16
|
+
* `PlainBody` is a decorator function getting full body text from the HTTP
|
|
17
|
+
* request.
|
|
18
|
+
*
|
|
19
|
+
* If you adjust the regular {@link Body} decorator function to the body
|
|
20
|
+
* parameter, you can't get the full body text because the {@link Body} tries to
|
|
21
|
+
* convert the body text to JSON object. Therefore, `@nestia/core` provides this
|
|
22
|
+
* `PlainBody` decorator function to get the full body text.
|
|
23
|
+
*
|
|
24
|
+
* ```typescript
|
|
25
|
+
* \@TypedRoute.Post("memo")
|
|
26
|
+
* public store
|
|
27
|
+
* (
|
|
28
|
+
* \@PlainBody() body: string
|
|
29
|
+
* ): void;
|
|
30
|
+
* ```
|
|
31
|
+
*
|
|
32
|
+
* @author Jeongho Nam - https://github.com/samchon
|
|
33
|
+
* @returns Parameter decorator
|
|
34
|
+
*/
|
|
35
|
+
export function PlainBody(): ParameterDecorator;
|
|
36
|
+
|
|
37
|
+
/** @internal */
|
|
38
|
+
export function PlainBody(
|
|
39
|
+
assert?: (input: unknown) => string,
|
|
40
|
+
): ParameterDecorator {
|
|
41
|
+
const checker = assert
|
|
42
|
+
? validate_request_body("PlainBody")({
|
|
43
|
+
type: "assert",
|
|
44
|
+
assert,
|
|
45
|
+
})
|
|
46
|
+
: null;
|
|
47
|
+
return createParamDecorator(async function PlainBody(
|
|
48
|
+
_data: any,
|
|
49
|
+
context: ExecutionContext,
|
|
50
|
+
) {
|
|
51
|
+
const request: express.Request | FastifyRequest = context
|
|
52
|
+
.switchToHttp()
|
|
53
|
+
.getRequest();
|
|
54
|
+
if (
|
|
55
|
+
is_request_body_undefined(request) &&
|
|
56
|
+
(checker ?? (() => null))(undefined as any) === null
|
|
57
|
+
)
|
|
58
|
+
return undefined;
|
|
59
|
+
else if (!isTextPlain(request.headers["content-type"]))
|
|
60
|
+
throw new BadRequestException(`Request body type is not "text/plain".`);
|
|
61
|
+
const value: string = await get_text_body(request);
|
|
62
|
+
if (checker) {
|
|
63
|
+
const error: Error | null = checker(value);
|
|
64
|
+
if (error !== null) throw error;
|
|
65
|
+
}
|
|
66
|
+
return value;
|
|
67
|
+
})();
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/** @internal */
|
|
71
|
+
const isTextPlain = (text?: string): boolean =>
|
|
72
|
+
text !== undefined &&
|
|
73
|
+
text
|
|
74
|
+
.split(";")
|
|
75
|
+
.map((str) => str.trim())
|
|
76
|
+
.some((str) => str === "text/plain");
|