@nestia/core 1.3.2 → 1.3.4
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/TypedBodyProgrammer.js +25 -14
- package/lib/programmers/TypedBodyProgrammer.js.map +1 -1
- package/lib/transform.js +7 -1
- package/lib/transform.js.map +1 -1
- package/package.json +3 -3
- package/src/options/INestiaTransformOptions.ts +1 -1
- package/src/programmers/TypedBodyProgrammer.ts +42 -30
- package/src/transform.ts +13 -3
|
@@ -25,22 +25,33 @@ var TypedBodyProgrammer;
|
|
|
25
25
|
return function (modulo) {
|
|
26
26
|
return function (type) {
|
|
27
27
|
// GENERATE VALIDATION PLAN
|
|
28
|
-
var parameter = function (key
|
|
29
|
-
return
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
28
|
+
var parameter = function (key) {
|
|
29
|
+
return function (equals) {
|
|
30
|
+
return function (programmer) {
|
|
31
|
+
return typescript_1.default.factory.createObjectLiteralExpression([
|
|
32
|
+
typescript_1.default.factory.createPropertyAssignment(typescript_1.default.factory.createIdentifier("type"), typescript_1.default.factory.createStringLiteral(key)),
|
|
33
|
+
typescript_1.default.factory.createPropertyAssignment(typescript_1.default.factory.createIdentifier(key), programmer(__assign(__assign({}, project), { options: {
|
|
34
|
+
numeric: false,
|
|
35
|
+
finite: false,
|
|
36
|
+
functional: false,
|
|
37
|
+
} }))(modulo)(equals)(type)),
|
|
38
|
+
]);
|
|
39
|
+
};
|
|
40
|
+
};
|
|
37
41
|
};
|
|
38
42
|
// RETURNS
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
43
|
+
var category = project.options.validate;
|
|
44
|
+
if (category === "is")
|
|
45
|
+
return parameter("is")(false)(IsProgrammer_1.IsProgrammer.write);
|
|
46
|
+
else if (category === "validate")
|
|
47
|
+
return parameter("validate")(false)(ValidateProgrammer_1.ValidateProgrammer.write);
|
|
48
|
+
else if (category === "validateEquals")
|
|
49
|
+
return parameter("validate")(true)(AssertProgrammer_1.AssertProgrammer.write);
|
|
50
|
+
else if (category === "equals")
|
|
51
|
+
return parameter("is")(true)(AssertProgrammer_1.AssertProgrammer.write);
|
|
52
|
+
else if (category === "assertEquals")
|
|
53
|
+
return parameter("assert")(true)(AssertProgrammer_1.AssertProgrammer.write);
|
|
54
|
+
return parameter("assert")(false)(AssertProgrammer_1.AssertProgrammer.write);
|
|
44
55
|
};
|
|
45
56
|
};
|
|
46
57
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TypedBodyProgrammer.js","sourceRoot":"","sources":["../../src/programmers/TypedBodyProgrammer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,0DAA4B;AAE5B,2EAA0E;AAC1E,mEAAkE;AAClE,+EAA8E;
|
|
1
|
+
{"version":3,"file":"TypedBodyProgrammer.js","sourceRoot":"","sources":["../../src/programmers/TypedBodyProgrammer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,0DAA4B;AAE5B,2EAA0E;AAC1E,mEAAkE;AAClE,+EAA8E;AAM9E,IAAiB,mBAAmB,CAkDnC;AAlDD,WAAiB,mBAAmB;IACnB,4BAAQ,GACjB,UAAC,OAAgC;QACjC,OAAA,UAAC,MAAiC;YAClC,OAAA,UAAC,IAAa;gBACV,2BAA2B;gBAC3B,IAAM,SAAS,GACX,UAAC,GAAuC;oBACxC,OAAA,UAAC,MAAe;wBAChB,OAAA,UACI,UAMwC;4BAExC,OAAA,oBAAE,CAAC,OAAO,CAAC,6BAA6B,CAAC;gCACrC,oBAAE,CAAC,OAAO,CAAC,wBAAwB,CAC/B,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,EACnC,oBAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC,GAAG,CAAC,CACtC;gCACD,oBAAE,CAAC,OAAO,CAAC,wBAAwB,CAC/B,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAChC,UAAU,uBACH,OAAO,KACV,OAAO,EAAE;wCACL,OAAO,EAAE,KAAK;wCACd,MAAM,EAAE,KAAK;wCACb,UAAU,EAAE,KAAK;qCACpB,IACH,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAC3B;6BACJ,CAAC;wBAhBF,CAgBE;oBAzBN,CAyBM;gBA1BN,CA0BM,CAAC;gBAEX,UAAU;gBACV,IAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC;gBAC1C,IAAI,QAAQ,KAAK,IAAI;oBACjB,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,2BAAY,CAAC,KAAK,CAAC,CAAC;qBACjD,IAAI,QAAQ,KAAK,UAAU;oBAC5B,OAAO,SAAS,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC,uCAAkB,CAAC,KAAK,CAAC,CAAC;qBAC7D,IAAI,QAAQ,KAAK,gBAAgB;oBAClC,OAAO,SAAS,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,mCAAgB,CAAC,KAAK,CAAC,CAAC;qBAC1D,IAAI,QAAQ,KAAK,QAAQ;oBAC1B,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,mCAAgB,CAAC,KAAK,CAAC,CAAC;qBACpD,IAAI,QAAQ,KAAK,cAAc;oBAChC,OAAO,SAAS,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,mCAAgB,CAAC,KAAK,CAAC,CAAC;gBAC7D,OAAO,SAAS,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,mCAAgB,CAAC,KAAK,CAAC,CAAC;YAC9D,CAAC;QA7CD,CA6CC;IA9CD,CA8CC,CAAC;AACV,CAAC,EAlDgB,mBAAmB,GAAnB,2BAAmB,KAAnB,2BAAmB,QAkDnC"}
|
package/lib/transform.js
CHANGED
|
@@ -7,9 +7,15 @@ exports.transform = void 0;
|
|
|
7
7
|
var typescript_1 = __importDefault(require("typescript"));
|
|
8
8
|
var FileTransformer_1 = require("./transformers/FileTransformer");
|
|
9
9
|
var transform = function (program, options) {
|
|
10
|
+
var compilerOptions = program.getCompilerOptions();
|
|
11
|
+
var strict = compilerOptions.strictNullChecks !== undefined
|
|
12
|
+
? !!compilerOptions.strictNullChecks
|
|
13
|
+
: !!compilerOptions.strict;
|
|
14
|
+
if (strict === false)
|
|
15
|
+
throw new Error("Error on \"tsconfig.json\": nestia requires `compilerOptions.strictNullChecks` to be true.");
|
|
10
16
|
return FileTransformer_1.FileTransformer.transform({
|
|
11
17
|
program: program,
|
|
12
|
-
compilerOptions:
|
|
18
|
+
compilerOptions: compilerOptions,
|
|
13
19
|
checker: program.getTypeChecker(),
|
|
14
20
|
printer: typescript_1.default.createPrinter(),
|
|
15
21
|
options: options || {},
|
package/lib/transform.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform.js","sourceRoot":"","sources":["../src/transform.ts"],"names":[],"mappings":";;;;;;AAAA,0DAA4B;AAG5B,kEAAiE;AAE1D,IAAM,SAAS,GAAG,UACrB,OAAmB,EACnB,OAAiC;IAEjC,
|
|
1
|
+
{"version":3,"file":"transform.js","sourceRoot":"","sources":["../src/transform.ts"],"names":[],"mappings":";;;;;;AAAA,0DAA4B;AAG5B,kEAAiE;AAE1D,IAAM,SAAS,GAAG,UACrB,OAAmB,EACnB,OAAiC;IAEjC,IAAM,eAAe,GAAuB,OAAO,CAAC,kBAAkB,EAAE,CAAC;IACzE,IAAM,MAAM,GACR,eAAe,CAAC,gBAAgB,KAAK,SAAS;QAC1C,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,gBAAgB;QACpC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC;IACnC,IAAI,MAAM,KAAK,KAAK;QAChB,MAAM,IAAI,KAAK,CACX,4FAA4F,CAC/F,CAAC;IACN,OAAO,iCAAe,CAAC,SAAS,CAAC;QAC7B,OAAO,SAAA;QACP,eAAe,iBAAA;QACf,OAAO,EAAE,OAAO,CAAC,cAAc,EAAE;QACjC,OAAO,EAAE,oBAAE,CAAC,aAAa,EAAE;QAC3B,OAAO,EAAE,OAAO,IAAI,EAAE;KACzB,CAAC,CAAC;AACP,CAAC,CAAC;AApBW,QAAA,SAAS,aAoBpB;AACF,kBAAe,iBAAS,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nestia/core",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.4",
|
|
4
4
|
"description": "Super-fast validation decorators of NestJS",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"typings": "lib/index.d.ts",
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
"raw-body": ">= 2.0.0",
|
|
45
45
|
"reflect-metadata": ">= 0.1.12",
|
|
46
46
|
"rxjs": ">= 6.0.0",
|
|
47
|
-
"typia": "^4.0.
|
|
47
|
+
"typia": "^4.0.4"
|
|
48
48
|
},
|
|
49
49
|
"peerDependencies": {
|
|
50
50
|
"@nestia/fetcher": "^1.2.1",
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
"reflect-metadata": ">= 0.1.12",
|
|
57
57
|
"rxjs": ">= 6.0.0",
|
|
58
58
|
"typescript": ">= 4.5.2",
|
|
59
|
-
"typia": ">= 4.0.
|
|
59
|
+
"typia": ">= 4.0.3"
|
|
60
60
|
},
|
|
61
61
|
"devDependencies": {
|
|
62
62
|
"@trivago/prettier-plugin-sort-imports": "^4.0.0",
|
|
@@ -6,6 +6,7 @@ import { ValidateProgrammer } from "typia/lib/programmers/ValidateProgrammer";
|
|
|
6
6
|
import { IProject } from "typia/lib/transformers/IProject";
|
|
7
7
|
|
|
8
8
|
import { INestiaTransformProject } from "../options/INestiaTransformProject";
|
|
9
|
+
import { IRequestBodyValidator } from "../options/IRequestBodyValidator";
|
|
9
10
|
|
|
10
11
|
export namespace TypedBodyProgrammer {
|
|
11
12
|
export const generate =
|
|
@@ -13,37 +14,48 @@ export namespace TypedBodyProgrammer {
|
|
|
13
14
|
(modulo: ts.LeftHandSideExpression) =>
|
|
14
15
|
(type: ts.Type): ts.ObjectLiteralExpression => {
|
|
15
16
|
// GENERATE VALIDATION PLAN
|
|
16
|
-
const parameter =
|
|
17
|
-
key:
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
17
|
+
const parameter =
|
|
18
|
+
(key: IRequestBodyValidator<any>["type"]) =>
|
|
19
|
+
(equals: boolean) =>
|
|
20
|
+
(
|
|
21
|
+
programmer: (
|
|
22
|
+
project: IProject,
|
|
23
|
+
) => (
|
|
24
|
+
modulo: ts.LeftHandSideExpression,
|
|
25
|
+
) => (
|
|
26
|
+
equals: boolean,
|
|
27
|
+
) => (type: ts.Type) => ts.ArrowFunction,
|
|
28
|
+
) =>
|
|
29
|
+
ts.factory.createObjectLiteralExpression([
|
|
30
|
+
ts.factory.createPropertyAssignment(
|
|
31
|
+
ts.factory.createIdentifier("type"),
|
|
32
|
+
ts.factory.createStringLiteral(key),
|
|
33
|
+
),
|
|
34
|
+
ts.factory.createPropertyAssignment(
|
|
35
|
+
ts.factory.createIdentifier(key),
|
|
36
|
+
programmer({
|
|
37
|
+
...project,
|
|
38
|
+
options: {
|
|
39
|
+
numeric: false,
|
|
40
|
+
finite: false,
|
|
41
|
+
functional: false,
|
|
42
|
+
},
|
|
43
|
+
})(modulo)(equals)(type),
|
|
44
|
+
),
|
|
45
|
+
]);
|
|
41
46
|
|
|
42
47
|
// RETURNS
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
+
const category = project.options.validate;
|
|
49
|
+
if (category === "is")
|
|
50
|
+
return parameter("is")(false)(IsProgrammer.write);
|
|
51
|
+
else if (category === "validate")
|
|
52
|
+
return parameter("validate")(false)(ValidateProgrammer.write);
|
|
53
|
+
else if (category === "validateEquals")
|
|
54
|
+
return parameter("validate")(true)(AssertProgrammer.write);
|
|
55
|
+
else if (category === "equals")
|
|
56
|
+
return parameter("is")(true)(AssertProgrammer.write);
|
|
57
|
+
else if (category === "assertEquals")
|
|
58
|
+
return parameter("assert")(true)(AssertProgrammer.write);
|
|
59
|
+
return parameter("assert")(false)(AssertProgrammer.write);
|
|
48
60
|
};
|
|
49
61
|
}
|
package/src/transform.ts
CHANGED
|
@@ -6,12 +6,22 @@ import { FileTransformer } from "./transformers/FileTransformer";
|
|
|
6
6
|
export const transform = (
|
|
7
7
|
program: ts.Program,
|
|
8
8
|
options?: INestiaTransformOptions,
|
|
9
|
-
): ts.TransformerFactory<ts.SourceFile> =>
|
|
10
|
-
|
|
9
|
+
): ts.TransformerFactory<ts.SourceFile> => {
|
|
10
|
+
const compilerOptions: ts.CompilerOptions = program.getCompilerOptions();
|
|
11
|
+
const strict: boolean =
|
|
12
|
+
compilerOptions.strictNullChecks !== undefined
|
|
13
|
+
? !!compilerOptions.strictNullChecks
|
|
14
|
+
: !!compilerOptions.strict;
|
|
15
|
+
if (strict === false)
|
|
16
|
+
throw new Error(
|
|
17
|
+
`Error on "tsconfig.json": nestia requires \`compilerOptions.strictNullChecks\` to be true.`,
|
|
18
|
+
);
|
|
19
|
+
return FileTransformer.transform({
|
|
11
20
|
program,
|
|
12
|
-
compilerOptions
|
|
21
|
+
compilerOptions,
|
|
13
22
|
checker: program.getTypeChecker(),
|
|
14
23
|
printer: ts.createPrinter(),
|
|
15
24
|
options: options || {},
|
|
16
25
|
});
|
|
26
|
+
};
|
|
17
27
|
export default transform;
|