@nestia/core 1.2.2 → 1.2.3
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/README.md +3 -2
- package/lib/decorators/TypedParam.d.ts +1 -1
- package/lib/decorators/TypedParam.js +6 -0
- package/lib/decorators/TypedParam.js.map +1 -1
- package/lib/programmers/TypedParamProgrammer.js +1 -1
- package/lib/programmers/TypedParamProgrammer.js.map +1 -1
- package/package.json +78 -78
- package/src/decorators/TypedParam.ts +12 -2
- package/src/programmers/TypedParamProgrammer.ts +2 -1
package/README.md
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
Nestia is a set of helper libraries for NestJS, supporting below features:
|
|
11
11
|
|
|
12
12
|
- `@nestia/core`: super-fast decorators
|
|
13
|
-
- `@nestia/sdk
|
|
13
|
+
- `@nestia/sdk`:
|
|
14
14
|
- SDK generator for clients
|
|
15
15
|
- Swagger generator evolved than ever
|
|
16
16
|
- Automatic E2E test functions generator
|
|
@@ -48,12 +48,13 @@ Check out the document in the [website](https://nestia.io/docs/):
|
|
|
48
48
|
- [Setup](https://nestia.io/docs/setup/)
|
|
49
49
|
|
|
50
50
|
### 📖 Features
|
|
51
|
+
- [Pure TypeScript](https://nestia.io/docs/pure)
|
|
51
52
|
- Core Library
|
|
52
53
|
- [TypedRoute](https://nestia.io/docs/core/TypedRoute/)
|
|
53
54
|
- [TypedBody](https://nestia.io/docs/core/TypedBody/)
|
|
54
55
|
- [TypedParam](https://nestia.io/docs/core/TypedParam/)
|
|
55
56
|
- [TypedQuery](https://nestia.io/docs/core/TypedRoute/)
|
|
56
57
|
- Generators
|
|
57
|
-
- [SDK Library](https://nestia.io/docs/sdk/sdk/)
|
|
58
58
|
- [Swagger Documents](https://nestia.io/docs/sdk/swagger/)
|
|
59
|
+
- [SDK Library](https://nestia.io/docs/sdk/sdk/)
|
|
59
60
|
- [E2E Functions](https://nestia.io/docs/sdk/e2e/)
|
|
@@ -28,4 +28,4 @@
|
|
|
28
28
|
*
|
|
29
29
|
* @author Jeongho Nam - https://github.com/samchon
|
|
30
30
|
*/
|
|
31
|
-
export declare function TypedParam(name: string, type?: "boolean" | "number" | "string" | "uuid", nullable?: false | true): ParameterDecorator;
|
|
31
|
+
export declare function TypedParam(name: string, type?: "boolean" | "number" | "string" | "uuid" | "date", nullable?: false | true): ParameterDecorator;
|
|
@@ -58,6 +58,11 @@ function TypedParam(name, type, nullable) {
|
|
|
58
58
|
return (0, send_bad_request_1.send_bad_request)(context)(new common_1.BadRequestException("Value of the URL parameter \"".concat(name, "\" is not a valid UUID.")));
|
|
59
59
|
return str;
|
|
60
60
|
}
|
|
61
|
+
else if (type === "date") {
|
|
62
|
+
if (DATE_PATTERN.test(str) === false)
|
|
63
|
+
return (0, send_bad_request_1.send_bad_request)(context)(new common_1.BadRequestException("Value of the URL parameter \"".concat(name, "\" is not a valid date.")));
|
|
64
|
+
return str;
|
|
65
|
+
}
|
|
61
66
|
else
|
|
62
67
|
return str;
|
|
63
68
|
}
|
|
@@ -67,4 +72,5 @@ function TypedParam(name, type, nullable) {
|
|
|
67
72
|
}
|
|
68
73
|
exports.TypedParam = TypedParam;
|
|
69
74
|
var UUID_PATTERN = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;
|
|
75
|
+
var DATE_PATTERN = /^\d{4}-\d{2}-\d{2}$/;
|
|
70
76
|
//# sourceMappingURL=TypedParam.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TypedParam.js","sourceRoot":"","sources":["../../src/decorators/TypedParam.ts"],"names":[],"mappings":";;;AAAA,yCAIwB;AAGxB,gEAA+D;AAE/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,SAAgB,UAAU,CACtB,IAAY,EACZ,
|
|
1
|
+
{"version":3,"file":"TypedParam.js","sourceRoot":"","sources":["../../src/decorators/TypedParam.ts"],"names":[],"mappings":";;;AAAA,yCAIwB;AAGxB,gEAA+D;AAE/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,SAAgB,UAAU,CACtB,IAAY,EACZ,IAAwD,EACxD,QAAuB;IAEvB,SAAS,UAAU,CAAC,EAAO,EAAE,OAAyB;QAClD,IAAM,OAAO,GAAoB,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC;QACrE,IAAM,GAAG,GAAW,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAEzC,IAAI,QAAQ,KAAK,IAAI,IAAI,GAAG,KAAK,MAAM;YAAE,OAAO,IAAI,CAAC;aAChD,IAAI,IAAI,KAAK,SAAS,EAAE;YACzB,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,GAAG;gBAAE,OAAO,IAAI,CAAC;iBAC1C,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,GAAG;gBAAE,OAAO,KAAK,CAAC;;gBAElD,OAAO,IAAA,mCAAgB,EAAC,OAAO,CAAC,CAC5B,IAAI,4BAAmB,CACnB,sCAA+B,IAAI,wBAAqB,CAC3D,CACJ,CAAC;SACT;aAAM,IAAI,IAAI,KAAK,QAAQ,EAAE;YAC1B,IAAM,KAAK,GAAW,MAAM,CAAC,GAAG,CAAC,CAAC;YAClC,IAAI,KAAK,CAAC,KAAK,CAAC;gBACZ,OAAO,IAAA,mCAAgB,EAAC,OAAO,CAAC,CAC5B,IAAI,4BAAmB,CACnB,uCAA+B,IAAI,wBAAoB,CAC1D,CACJ,CAAC;YACN,OAAO,KAAK,CAAC;SAChB;aAAM,IAAI,IAAI,KAAK,MAAM,EAAE;YACxB,IAAI,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK;gBAChC,OAAO,IAAA,mCAAgB,EAAC,OAAO,CAAC,CAC5B,IAAI,4BAAmB,CACnB,uCAA+B,IAAI,4BAAwB,CAC9D,CACJ,CAAC;YACN,OAAO,GAAG,CAAC;SACd;aAAM,IAAI,IAAI,KAAK,MAAM,EAAE;YACxB,IAAI,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK;gBAChC,OAAO,IAAA,mCAAgB,EAAC,OAAO,CAAC,CAC5B,IAAI,4BAAmB,CACnB,uCAA+B,IAAI,4BAAwB,CAC9D,CACJ,CAAC;YACN,OAAO,GAAG,CAAC;SACd;;YACI,OAAO,GAAG,CAAC;IACpB,CAAC;IACA,UAAkB,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC;IACzC,UAAkB,CAAC,IAAI,GAAG,IAAI,CAAC;IAChC,OAAO,IAAA,6BAAoB,EAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC;AAClD,CAAC;AAlDD,gCAkDC;AAED,IAAM,YAAY,GACd,qHAAqH,CAAC;AAC1H,IAAM,YAAY,GAAG,qBAAqB,CAAC"}
|
|
@@ -102,7 +102,7 @@ var error = function (message) {
|
|
|
102
102
|
var equals = function (atomic, p) {
|
|
103
103
|
var name = p.getName();
|
|
104
104
|
if (atomic === "string")
|
|
105
|
-
return name === "\"string\"" || name === "\"uuid\"";
|
|
105
|
+
return name === "\"string\"" || name === "\"uuid\"" || name === "\"date\"";
|
|
106
106
|
return "\"".concat(atomic, "\"") === name;
|
|
107
107
|
};
|
|
108
108
|
//# sourceMappingURL=TypedParamProgrammer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TypedParamProgrammer.js","sourceRoot":"","sources":["../../src/programmers/TypedParamProgrammer.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"TypedParamProgrammer.js","sourceRoot":"","sources":["../../src/programmers/TypedParamProgrammer.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,79 +1,79 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@nestia/core",
|
|
3
|
-
"version": "1.2.
|
|
4
|
-
"description": "Super-fast validation decorators of NestJS",
|
|
5
|
-
"main": "lib/index.js",
|
|
6
|
-
"typings": "lib/index.d.ts",
|
|
7
|
-
"scripts": {
|
|
8
|
-
"build": "rimraf lib && tsc",
|
|
9
|
-
"dev": "npm run build -- --watch",
|
|
10
|
-
"eslint": "eslint ./**/*.ts",
|
|
11
|
-
"eslint:fix": "eslint ./**/*.ts --fix",
|
|
12
|
-
"package:latest": "npm run build && npm publish --access public",
|
|
13
|
-
"package:next": "npm run package:latest -- --tag next",
|
|
14
|
-
"prettier": "prettier ./**/*.ts --write",
|
|
15
|
-
"prepare": "ts-patch install"
|
|
16
|
-
},
|
|
17
|
-
"repository": {
|
|
18
|
-
"type": "git",
|
|
19
|
-
"url": "https://github.com/samchon/nestia"
|
|
20
|
-
},
|
|
21
|
-
"keywords": [
|
|
22
|
-
"nestjs",
|
|
23
|
-
"nestia",
|
|
24
|
-
"typia",
|
|
25
|
-
"validator",
|
|
26
|
-
"decorator",
|
|
27
|
-
"class-validator",
|
|
28
|
-
"class-transformer"
|
|
29
|
-
],
|
|
30
|
-
"author": "Jeongho Nam",
|
|
31
|
-
"license": "MIT",
|
|
32
|
-
"bugs": {
|
|
33
|
-
"url": "https://github.com/samchon/nestia/issues"
|
|
34
|
-
},
|
|
35
|
-
"homepage": "https://
|
|
36
|
-
"dependencies": {
|
|
37
|
-
"@nestia/fetcher": "^1.2.1",
|
|
38
|
-
"@nestjs/common": ">= 7.0.1",
|
|
39
|
-
"@nestjs/core": ">= 7.0.1",
|
|
40
|
-
"@nestjs/platform-express": ">= 7.0.1",
|
|
41
|
-
"@nestjs/platform-fastify": ">= 7.0.1",
|
|
42
|
-
"detect-ts-node": "^1.0.5",
|
|
43
|
-
"glob": "^7.2.0",
|
|
44
|
-
"raw-body": ">= 2.0.0",
|
|
45
|
-
"reflect-metadata": ">= 0.1.12",
|
|
46
|
-
"rxjs": ">= 6.0.0",
|
|
47
|
-
"typia": "^3.8.4"
|
|
48
|
-
},
|
|
49
|
-
"peerDependencies": {
|
|
50
|
-
"typescript": ">= 4.5.2"
|
|
51
|
-
},
|
|
52
|
-
"devDependencies": {
|
|
53
|
-
"@trivago/prettier-plugin-sort-imports": "^4.0.0",
|
|
54
|
-
"@types/express": "^4.17.15",
|
|
55
|
-
"@types/glob": "^7.2.0",
|
|
56
|
-
"@types/inquirer": "^9.0.3",
|
|
57
|
-
"@typescript-eslint/eslint-plugin": "^5.46.1",
|
|
58
|
-
"@typescript-eslint/parser": "^5.46.1",
|
|
59
|
-
"commander": "^10.0.0",
|
|
60
|
-
"comment-json": "^4.2.3",
|
|
61
|
-
"eslint-plugin-deprecation": "^1.4.1",
|
|
62
|
-
"git-last-commit": "^1.0.1",
|
|
63
|
-
"inquirer": "^8.2.5",
|
|
64
|
-
"prettier": "^2.8.7",
|
|
65
|
-
"rimraf": "^3.0.2",
|
|
66
|
-
"ts-node": "^10.9.1",
|
|
67
|
-
"ts-patch": "^2.1.0",
|
|
68
|
-
"tstl": "^2.5.13",
|
|
69
|
-
"typescript": "^4.9.5",
|
|
70
|
-
"typescript-transform-paths": "^3.4.6"
|
|
71
|
-
},
|
|
72
|
-
"files": [
|
|
73
|
-
"README.md",
|
|
74
|
-
"LICENSE",
|
|
75
|
-
"package.json",
|
|
76
|
-
"lib",
|
|
77
|
-
"src"
|
|
78
|
-
]
|
|
1
|
+
{
|
|
2
|
+
"name": "@nestia/core",
|
|
3
|
+
"version": "1.2.3",
|
|
4
|
+
"description": "Super-fast validation decorators of NestJS",
|
|
5
|
+
"main": "lib/index.js",
|
|
6
|
+
"typings": "lib/index.d.ts",
|
|
7
|
+
"scripts": {
|
|
8
|
+
"build": "rimraf lib && tsc",
|
|
9
|
+
"dev": "npm run build -- --watch",
|
|
10
|
+
"eslint": "eslint ./**/*.ts",
|
|
11
|
+
"eslint:fix": "eslint ./**/*.ts --fix",
|
|
12
|
+
"package:latest": "npm run build && npm publish --access public",
|
|
13
|
+
"package:next": "npm run package:latest -- --tag next",
|
|
14
|
+
"prettier": "prettier ./**/*.ts --write",
|
|
15
|
+
"prepare": "ts-patch install"
|
|
16
|
+
},
|
|
17
|
+
"repository": {
|
|
18
|
+
"type": "git",
|
|
19
|
+
"url": "https://github.com/samchon/nestia"
|
|
20
|
+
},
|
|
21
|
+
"keywords": [
|
|
22
|
+
"nestjs",
|
|
23
|
+
"nestia",
|
|
24
|
+
"typia",
|
|
25
|
+
"validator",
|
|
26
|
+
"decorator",
|
|
27
|
+
"class-validator",
|
|
28
|
+
"class-transformer"
|
|
29
|
+
],
|
|
30
|
+
"author": "Jeongho Nam",
|
|
31
|
+
"license": "MIT",
|
|
32
|
+
"bugs": {
|
|
33
|
+
"url": "https://github.com/samchon/nestia/issues"
|
|
34
|
+
},
|
|
35
|
+
"homepage": "https://nestia.io",
|
|
36
|
+
"dependencies": {
|
|
37
|
+
"@nestia/fetcher": "^1.2.1",
|
|
38
|
+
"@nestjs/common": ">= 7.0.1",
|
|
39
|
+
"@nestjs/core": ">= 7.0.1",
|
|
40
|
+
"@nestjs/platform-express": ">= 7.0.1",
|
|
41
|
+
"@nestjs/platform-fastify": ">= 7.0.1",
|
|
42
|
+
"detect-ts-node": "^1.0.5",
|
|
43
|
+
"glob": "^7.2.0",
|
|
44
|
+
"raw-body": ">= 2.0.0",
|
|
45
|
+
"reflect-metadata": ">= 0.1.12",
|
|
46
|
+
"rxjs": ">= 6.0.0",
|
|
47
|
+
"typia": "^3.8.4"
|
|
48
|
+
},
|
|
49
|
+
"peerDependencies": {
|
|
50
|
+
"typescript": ">= 4.5.2"
|
|
51
|
+
},
|
|
52
|
+
"devDependencies": {
|
|
53
|
+
"@trivago/prettier-plugin-sort-imports": "^4.0.0",
|
|
54
|
+
"@types/express": "^4.17.15",
|
|
55
|
+
"@types/glob": "^7.2.0",
|
|
56
|
+
"@types/inquirer": "^9.0.3",
|
|
57
|
+
"@typescript-eslint/eslint-plugin": "^5.46.1",
|
|
58
|
+
"@typescript-eslint/parser": "^5.46.1",
|
|
59
|
+
"commander": "^10.0.0",
|
|
60
|
+
"comment-json": "^4.2.3",
|
|
61
|
+
"eslint-plugin-deprecation": "^1.4.1",
|
|
62
|
+
"git-last-commit": "^1.0.1",
|
|
63
|
+
"inquirer": "^8.2.5",
|
|
64
|
+
"prettier": "^2.8.7",
|
|
65
|
+
"rimraf": "^3.0.2",
|
|
66
|
+
"ts-node": "^10.9.1",
|
|
67
|
+
"ts-patch": "^2.1.0",
|
|
68
|
+
"tstl": "^2.5.13",
|
|
69
|
+
"typescript": "^4.9.5",
|
|
70
|
+
"typescript-transform-paths": "^3.4.6"
|
|
71
|
+
},
|
|
72
|
+
"files": [
|
|
73
|
+
"README.md",
|
|
74
|
+
"LICENSE",
|
|
75
|
+
"package.json",
|
|
76
|
+
"lib",
|
|
77
|
+
"src"
|
|
78
|
+
]
|
|
79
79
|
}
|
|
@@ -39,7 +39,7 @@ import { send_bad_request } from "./internal/send_bad_request";
|
|
|
39
39
|
*/
|
|
40
40
|
export function TypedParam(
|
|
41
41
|
name: string,
|
|
42
|
-
type?: "boolean" | "number" | "string" | "uuid",
|
|
42
|
+
type?: "boolean" | "number" | "string" | "uuid" | "date",
|
|
43
43
|
nullable?: false | true,
|
|
44
44
|
): ParameterDecorator {
|
|
45
45
|
function TypedParam({}: any, context: ExecutionContext) {
|
|
@@ -73,7 +73,16 @@ export function TypedParam(
|
|
|
73
73
|
),
|
|
74
74
|
);
|
|
75
75
|
return str;
|
|
76
|
-
} else
|
|
76
|
+
} else if (type === "date") {
|
|
77
|
+
if (DATE_PATTERN.test(str) === false)
|
|
78
|
+
return send_bad_request(context)(
|
|
79
|
+
new BadRequestException(
|
|
80
|
+
`Value of the URL parameter "${name}" is not a valid date.`,
|
|
81
|
+
),
|
|
82
|
+
);
|
|
83
|
+
return str;
|
|
84
|
+
}
|
|
85
|
+
else return str;
|
|
77
86
|
}
|
|
78
87
|
(TypedParam as any).nullable = !!nullable;
|
|
79
88
|
(TypedParam as any).type = type;
|
|
@@ -82,3 +91,4 @@ export function TypedParam(
|
|
|
82
91
|
|
|
83
92
|
const UUID_PATTERN =
|
|
84
93
|
/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;
|
|
94
|
+
const DATE_PATTERN = /^\d{4}-\d{2}-\d{2}$/;
|
|
@@ -91,6 +91,7 @@ const error = (message: string) =>
|
|
|
91
91
|
|
|
92
92
|
const equals = (atomic: string, p: Metadata) => {
|
|
93
93
|
const name: string = p.getName();
|
|
94
|
-
if (atomic === "string")
|
|
94
|
+
if (atomic === "string")
|
|
95
|
+
return name === `"string"` || name === `"uuid"` || name === `"date"`;
|
|
95
96
|
return `"${atomic}"` === name;
|
|
96
97
|
};
|