@nestia/core 3.15.0 → 3.16.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/lib/decorators/EncryptedRoute.d.ts +3 -3
- package/lib/decorators/EncryptedRoute.js +3 -3
- package/lib/decorators/TypedRoute.d.ts +7 -3
- package/lib/decorators/TypedRoute.js +3 -3
- package/lib/decorators/TypedRoute.js.map +1 -1
- package/lib/decorators/internal/get_path_and_stringify.js +4 -2
- package/lib/decorators/internal/get_path_and_stringify.js.map +1 -1
- package/lib/options/INestiaTransformOptions.d.ts +1 -1
- package/lib/options/IResponseBodyStringifier.d.ts +2 -2
- package/lib/programmers/TypedRouteProgrammer.js +1 -8
- package/lib/programmers/TypedRouteProgrammer.js.map +1 -1
- package/package.json +3 -3
- package/src/decorators/EncryptedRoute.ts +3 -3
- package/src/decorators/TypedRoute.ts +8 -3
- package/src/decorators/internal/get_path_and_stringify.ts +4 -5
- package/src/options/INestiaTransformOptions.ts +0 -1
- package/src/options/IResponseBodyStringifier.ts +2 -2
- package/src/programmers/TypedRouteProgrammer.ts +1 -10
|
@@ -85,9 +85,9 @@ export declare namespace EncryptedRoute {
|
|
|
85
85
|
* instead of throwing the 400 bad request error.
|
|
86
86
|
*
|
|
87
87
|
* By the way, be careful. If you've configured the response
|
|
88
|
-
* transformation option to be `validate.log
|
|
89
|
-
*
|
|
90
|
-
*
|
|
88
|
+
* transformation option to be `validate.log`, client may get wrong
|
|
89
|
+
* response data. Therefore, this way is not recommended in the common
|
|
90
|
+
* backend server case.
|
|
91
91
|
*
|
|
92
92
|
* @param func Logger function
|
|
93
93
|
* @default console.log
|
|
@@ -80,9 +80,9 @@ var EncryptedRoute;
|
|
|
80
80
|
* instead of throwing the 400 bad request error.
|
|
81
81
|
*
|
|
82
82
|
* By the way, be careful. If you've configured the response
|
|
83
|
-
* transformation option to be `validate.log
|
|
84
|
-
*
|
|
85
|
-
*
|
|
83
|
+
* transformation option to be `validate.log`, client may get wrong
|
|
84
|
+
* response data. Therefore, this way is not recommended in the common
|
|
85
|
+
* backend server case.
|
|
86
86
|
*
|
|
87
87
|
* @param func Logger function
|
|
88
88
|
* @default console.log
|
|
@@ -80,9 +80,9 @@ export declare namespace TypedRoute {
|
|
|
80
80
|
* instead of throwing the 400 bad request error.
|
|
81
81
|
*
|
|
82
82
|
* By the way, be careful. If you've configured the response
|
|
83
|
-
* transformation option to be `validate.log
|
|
84
|
-
*
|
|
85
|
-
*
|
|
83
|
+
* transformation option to be `validate.log`, client may get wrong
|
|
84
|
+
* response data. Therefore, this way is not recommended in the common
|
|
85
|
+
* backend server case.
|
|
86
86
|
*
|
|
87
87
|
* @param func Logger function
|
|
88
88
|
* @default console.log
|
|
@@ -115,5 +115,9 @@ export declare namespace TypedRoute {
|
|
|
115
115
|
* Validation error informations with detailed reasons.
|
|
116
116
|
*/
|
|
117
117
|
errors: IValidation.IError[];
|
|
118
|
+
/**
|
|
119
|
+
* Data that is not following the promised type `T`.
|
|
120
|
+
*/
|
|
121
|
+
data: unknown;
|
|
118
122
|
}
|
|
119
123
|
}
|
|
@@ -70,9 +70,9 @@ var TypedRoute;
|
|
|
70
70
|
* instead of throwing the 400 bad request error.
|
|
71
71
|
*
|
|
72
72
|
* By the way, be careful. If you've configured the response
|
|
73
|
-
* transformation option to be `validate.log
|
|
74
|
-
*
|
|
75
|
-
*
|
|
73
|
+
* transformation option to be `validate.log`, client may get wrong
|
|
74
|
+
* response data. Therefore, this way is not recommended in the common
|
|
75
|
+
* backend server case.
|
|
76
76
|
*
|
|
77
77
|
* @param func Logger function
|
|
78
78
|
* @default console.log
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TypedRoute.js","sourceRoot":"","sources":["../../src/decorators/TypedRoute.ts"],"names":[],"mappings":";;;;;;AAAA,2CAWwB;AAGxB,8CAAiD;AACjD,kDAA2C;AAG3C,8EAA2E;AAC3E,wDAAqD;AAErD;;;;;;;;;;;;;;GAcG;AACH,IAAiB,UAAU,
|
|
1
|
+
{"version":3,"file":"TypedRoute.js","sourceRoot":"","sources":["../../src/decorators/TypedRoute.ts"],"names":[],"mappings":"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"}
|
|
@@ -38,8 +38,7 @@ const take = (logger) => (method) => (functor) => {
|
|
|
38
38
|
return is(functor.is);
|
|
39
39
|
else if (functor.type === "validate")
|
|
40
40
|
return validate(functor.validate);
|
|
41
|
-
else if (functor.type === "validate.log"
|
|
42
|
-
functor.type === "validateEquals.log")
|
|
41
|
+
else if (functor.type === "validate.log")
|
|
43
42
|
return validateLog(logger)(functor.validate);
|
|
44
43
|
throw new Error(`Error on nestia.core.${method}(): invalid typed stringify function.`);
|
|
45
44
|
};
|
|
@@ -85,11 +84,14 @@ const validate = (closure) => (data, _method, _path) => {
|
|
|
85
84
|
};
|
|
86
85
|
const validateLog = (logger) => (closure) => (data, method, path) => {
|
|
87
86
|
const result = closure(data);
|
|
87
|
+
if (result.success === true)
|
|
88
|
+
return result.data;
|
|
88
89
|
if (result.success === false)
|
|
89
90
|
logger()({
|
|
90
91
|
errors: result.errors,
|
|
91
92
|
method,
|
|
92
93
|
path,
|
|
94
|
+
data,
|
|
93
95
|
});
|
|
94
96
|
return JSON.stringify(data);
|
|
95
97
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get_path_and_stringify.js","sourceRoot":"","sources":["../../../src/decorators/internal/get_path_and_stringify.ts"],"names":[],"mappings":";;;;;;AAAA,2CAA8D;AAC9D,kDAA2D;AAG3D,oFAAiF;AAGjF;;GAEG;AACI,MAAM,sBAAsB,GACjC,CAAC,MAAyD,EAAE,EAAE,CAC9D,CAAC,MAAc,EAAE,EAAE,CACnB,CACE,GAAG,IAAW,EAId,EAAE;IACF,MAAM,IAAI,GACR,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS;QACrB,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ;QAC3B,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACT,CAAC,CAAC,IAAI,CAAC;IACX,MAAM,OAAO,GACX,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpC,OAAO,CAAC,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AAC5D,CAAC,CAAC;AAlBS,QAAA,sBAAsB,0BAkB/B;AAEJ;;GAEG;AACH,MAAM,IAAI,GACR,CAAC,MAAyD,EAAE,EAAE,CAC9D,CAAC,MAAc,EAAE,EAAE,CACnB,CAAI,OAA4C,EAAE,EAAE;IAClD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,IAAA,6DAA6B,EAAC,MAAM,CAAC,CAAC;QACtC,OAAO,CAAC,KAAQ,EAAE,OAAe,EAAE,KAAa,EAAE,EAAE,CAClD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;SAAM,IAAI,OAAO,KAAK,IAAI;QACzB,OAAO,CAAC,KAAQ,EAAE,OAAe,EAAE,KAAa,EAAE,EAAE,CAClD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;SACrB,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW;QAAE,OAAO,OAAO,CAAC,SAAS,CAAC;SAC3D,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;SAC7D,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI;QAAE,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;SACjD,IAAI,OAAO,CAAC,IAAI,KAAK,UAAU;QAAE,OAAO,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;SACnE,
|
|
1
|
+
{"version":3,"file":"get_path_and_stringify.js","sourceRoot":"","sources":["../../../src/decorators/internal/get_path_and_stringify.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export interface INestiaTransformOptions {
|
|
2
2
|
validate?: "assert" | "is" | "validate" | "assertEquals" | "equals" | "validateEquals" | "assertClone" | "validateClone" | "assertPrune" | "validatePrune";
|
|
3
|
-
stringify?: "stringify" | "assert" | "is" | "validate" | "validate.log" |
|
|
3
|
+
stringify?: "stringify" | "assert" | "is" | "validate" | "validate.log" | null;
|
|
4
4
|
throws?: boolean;
|
|
5
5
|
}
|
|
@@ -18,7 +18,7 @@ export declare namespace IResponseBodyStringifier {
|
|
|
18
18
|
validate: (input: T) => IValidation<string>;
|
|
19
19
|
}
|
|
20
20
|
interface IValidateLog<T> {
|
|
21
|
-
type: "validate.log"
|
|
22
|
-
validate: (input: T) => IValidation<
|
|
21
|
+
type: "validate.log";
|
|
22
|
+
validate: (input: T) => IValidation<string>;
|
|
23
23
|
}
|
|
24
24
|
}
|
|
@@ -5,7 +5,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.TypedRouteProgrammer = void 0;
|
|
7
7
|
const typescript_1 = __importDefault(require("typescript"));
|
|
8
|
-
const ValidateProgrammer_1 = require("typia/lib/programmers/ValidateProgrammer");
|
|
9
8
|
const JsonAssertStringifyProgrammer_1 = require("typia/lib/programmers/json/JsonAssertStringifyProgrammer");
|
|
10
9
|
const JsonIsStringifyProgrammer_1 = require("typia/lib/programmers/json/JsonIsStringifyProgrammer");
|
|
11
10
|
const JsonStringifyProgrammer_1 = require("typia/lib/programmers/json/JsonStringifyProgrammer");
|
|
@@ -41,13 +40,7 @@ var TypedRouteProgrammer;
|
|
|
41
40
|
return parameter({
|
|
42
41
|
type: "validate.log",
|
|
43
42
|
key: "validate",
|
|
44
|
-
programmer:
|
|
45
|
-
});
|
|
46
|
-
else if (project.options.stringify === "validateEquals.log")
|
|
47
|
-
return parameter({
|
|
48
|
-
type: "validateEquals.log",
|
|
49
|
-
key: "validate",
|
|
50
|
-
programmer: (project) => (modulo) => ValidateProgrammer_1.ValidateProgrammer.write(project)(modulo)(true),
|
|
43
|
+
programmer: JsonValidateStringifyProgrammer_1.JsonValidateStringifyProgrammer.write,
|
|
51
44
|
});
|
|
52
45
|
else if (project.options.stringify === null)
|
|
53
46
|
return typescript_1.default.factory.createNull();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TypedRouteProgrammer.js","sourceRoot":"","sources":["../../src/programmers/TypedRouteProgrammer.ts"],"names":[],"mappings":";;;;;;AAAA,4DAA4B;AAC5B,
|
|
1
|
+
{"version":3,"file":"TypedRouteProgrammer.js","sourceRoot":"","sources":["../../src/programmers/TypedRouteProgrammer.ts"],"names":[],"mappings":";;;;;;AAAA,4DAA4B;AAC5B,4GAAyG;AACzG,oGAAiG;AACjG,gGAA6F;AAC7F,gHAA6G;AAK7G,IAAiB,oBAAoB,CAgEpC;AAhED,WAAiB,oBAAoB;IACtB,6BAAQ,GACnB,CAAC,OAAgC,EAAE,EAAE,CACrC,CAAC,MAAiC,EAAE,EAAE,CACtC,CAAC,IAAa,EAAiB,EAAE;QAC/B,0BAA0B;QAC1B,MAAM,SAAS,GAAG,CAAC,KAQlB,EAAE,EAAE,CACH,oBAAE,CAAC,OAAO,CAAC,6BAA6B,CAAC;YACvC,oBAAE,CAAC,OAAO,CAAC,wBAAwB,CACjC,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,EACnC,oBAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC,KAAK,CAAC,IAAI,CAAC,CAC3C;YACD,oBAAE,CAAC,OAAO,CAAC,wBAAwB,CACjC,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,EACtC,KAAK,CAAC,UAAU,iCACX,OAAO,KACV,OAAO,EAAE,EAAE,IACX,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CACjB;SACF,CAAC,CAAC;QAEL,UAAU;QACV,IAAI,OAAO,CAAC,OAAO,CAAC,SAAS,KAAK,IAAI;YACpC,OAAO,SAAS,CAAC;gBACf,IAAI,EAAE,IAAI;gBACV,GAAG,EAAE,IAAI;gBACT,UAAU,EAAE,qDAAyB,CAAC,KAAK;aAC5C,CAAC,CAAC;aACA,IAAI,OAAO,CAAC,OAAO,CAAC,SAAS,KAAK,UAAU;YAC/C,OAAO,SAAS,CAAC;gBACf,IAAI,EAAE,UAAU;gBAChB,GAAG,EAAE,UAAU;gBACf,UAAU,EAAE,iEAA+B,CAAC,KAAK;aAClD,CAAC,CAAC;aACA,IAAI,OAAO,CAAC,OAAO,CAAC,SAAS,KAAK,WAAW;YAChD,OAAO,SAAS,CAAC;gBACf,IAAI,EAAE,WAAW;gBACjB,GAAG,EAAE,WAAW;gBAChB,UAAU,EAAE,iDAAuB,CAAC,KAAK;aAC1C,CAAC,CAAC;aACA,IAAI,OAAO,CAAC,OAAO,CAAC,SAAS,KAAK,cAAc;YACnD,OAAO,SAAS,CAAC;gBACf,IAAI,EAAE,cAAc;gBACpB,GAAG,EAAE,UAAU;gBACf,UAAU,EAAE,iEAA+B,CAAC,KAAK;aAClD,CAAC,CAAC;aACA,IAAI,OAAO,CAAC,OAAO,CAAC,SAAS,KAAK,IAAI;YACzC,OAAO,oBAAE,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QAEjC,oBAAoB;QACpB,OAAO,SAAS,CAAC;YACf,IAAI,EAAE,QAAQ;YACd,GAAG,EAAE,QAAQ;YACb,UAAU,EAAE,6DAA6B,CAAC,KAAK;SAChD,CAAC,CAAC;IACL,CAAC,CAAC;AACN,CAAC,EAhEgB,oBAAoB,oCAApB,oBAAoB,QAgEpC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nestia/core",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.16.0",
|
|
4
4
|
"description": "Super-fast validation decorators of NestJS",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"typings": "lib/index.d.ts",
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
},
|
|
37
37
|
"homepage": "https://nestia.io",
|
|
38
38
|
"dependencies": {
|
|
39
|
-
"@nestia/fetcher": "^3.
|
|
39
|
+
"@nestia/fetcher": "^3.16.0",
|
|
40
40
|
"@nestjs/common": ">=7.0.1",
|
|
41
41
|
"@nestjs/core": ">=7.0.1",
|
|
42
42
|
"@samchon/openapi": "^1.1.0",
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
"ws": "^7.5.3"
|
|
54
54
|
},
|
|
55
55
|
"peerDependencies": {
|
|
56
|
-
"@nestia/fetcher": ">=3.
|
|
56
|
+
"@nestia/fetcher": ">=3.16.0",
|
|
57
57
|
"@nestjs/common": ">=7.0.1",
|
|
58
58
|
"@nestjs/core": ">=7.0.1",
|
|
59
59
|
"reflect-metadata": ">=0.1.12",
|
|
@@ -95,9 +95,9 @@ export namespace EncryptedRoute {
|
|
|
95
95
|
* instead of throwing the 400 bad request error.
|
|
96
96
|
*
|
|
97
97
|
* By the way, be careful. If you've configured the response
|
|
98
|
-
* transformation option to be `validate.log
|
|
99
|
-
*
|
|
100
|
-
*
|
|
98
|
+
* transformation option to be `validate.log`, client may get wrong
|
|
99
|
+
* response data. Therefore, this way is not recommended in the common
|
|
100
|
+
* backend server case.
|
|
101
101
|
*
|
|
102
102
|
* @param func Logger function
|
|
103
103
|
* @default console.log
|
|
@@ -84,9 +84,9 @@ export namespace TypedRoute {
|
|
|
84
84
|
* instead of throwing the 400 bad request error.
|
|
85
85
|
*
|
|
86
86
|
* By the way, be careful. If you've configured the response
|
|
87
|
-
* transformation option to be `validate.log
|
|
88
|
-
*
|
|
89
|
-
*
|
|
87
|
+
* transformation option to be `validate.log`, client may get wrong
|
|
88
|
+
* response data. Therefore, this way is not recommended in the common
|
|
89
|
+
* backend server case.
|
|
90
90
|
*
|
|
91
91
|
* @param func Logger function
|
|
92
92
|
* @default console.log
|
|
@@ -126,6 +126,11 @@ export namespace TypedRoute {
|
|
|
126
126
|
* Validation error informations with detailed reasons.
|
|
127
127
|
*/
|
|
128
128
|
errors: IValidation.IError[];
|
|
129
|
+
|
|
130
|
+
/**
|
|
131
|
+
* Data that is not following the promised type `T`.
|
|
132
|
+
*/
|
|
133
|
+
data: unknown;
|
|
129
134
|
}
|
|
130
135
|
|
|
131
136
|
/**
|
|
@@ -46,10 +46,7 @@ const take =
|
|
|
46
46
|
else if (functor.type === "assert") return assert(functor.assert);
|
|
47
47
|
else if (functor.type === "is") return is(functor.is);
|
|
48
48
|
else if (functor.type === "validate") return validate(functor.validate);
|
|
49
|
-
else if (
|
|
50
|
-
functor.type === "validate.log" ||
|
|
51
|
-
functor.type === "validateEquals.log"
|
|
52
|
-
)
|
|
49
|
+
else if (functor.type === "validate.log")
|
|
53
50
|
return validateLog(logger)(functor.validate);
|
|
54
51
|
throw new Error(
|
|
55
52
|
`Error on nestia.core.${method}(): invalid typed stringify function.`,
|
|
@@ -107,12 +104,14 @@ const validateLog =
|
|
|
107
104
|
(logger: () => (log: TypedRoute.IValidateErrorLog) => void) =>
|
|
108
105
|
<T>(closure: (data: T) => IValidation<any>) =>
|
|
109
106
|
(data: T, method: string, path: string): string => {
|
|
110
|
-
const result: IValidation<
|
|
107
|
+
const result: IValidation<string> = closure(data);
|
|
108
|
+
if (result.success === true) return result.data;
|
|
111
109
|
if (result.success === false)
|
|
112
110
|
logger()({
|
|
113
111
|
errors: result.errors,
|
|
114
112
|
method,
|
|
115
113
|
path,
|
|
114
|
+
data,
|
|
116
115
|
});
|
|
117
116
|
return JSON.stringify(data);
|
|
118
117
|
};
|
|
@@ -24,7 +24,7 @@ export namespace IResponseBodyStringifier {
|
|
|
24
24
|
validate: (input: T) => IValidation<string>;
|
|
25
25
|
}
|
|
26
26
|
export interface IValidateLog<T> {
|
|
27
|
-
type: "validate.log"
|
|
28
|
-
validate: (input: T) => IValidation<
|
|
27
|
+
type: "validate.log";
|
|
28
|
+
validate: (input: T) => IValidation<string>;
|
|
29
29
|
}
|
|
30
30
|
}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import ts from "typescript";
|
|
2
|
-
import { ValidateProgrammer } from "typia/lib/programmers/ValidateProgrammer";
|
|
3
2
|
import { JsonAssertStringifyProgrammer } from "typia/lib/programmers/json/JsonAssertStringifyProgrammer";
|
|
4
3
|
import { JsonIsStringifyProgrammer } from "typia/lib/programmers/json/JsonIsStringifyProgrammer";
|
|
5
4
|
import { JsonStringifyProgrammer } from "typia/lib/programmers/json/JsonStringifyProgrammer";
|
|
@@ -60,15 +59,7 @@ export namespace TypedRouteProgrammer {
|
|
|
60
59
|
return parameter({
|
|
61
60
|
type: "validate.log",
|
|
62
61
|
key: "validate",
|
|
63
|
-
programmer:
|
|
64
|
-
ValidateProgrammer.write(project)(modulo)(false),
|
|
65
|
-
});
|
|
66
|
-
else if (project.options.stringify === "validateEquals.log")
|
|
67
|
-
return parameter({
|
|
68
|
-
type: "validateEquals.log",
|
|
69
|
-
key: "validate",
|
|
70
|
-
programmer: (project) => (modulo) =>
|
|
71
|
-
ValidateProgrammer.write(project)(modulo)(true),
|
|
62
|
+
programmer: JsonValidateStringifyProgrammer.write,
|
|
72
63
|
});
|
|
73
64
|
else if (project.options.stringify === null)
|
|
74
65
|
return ts.factory.createNull();
|