@eggjs/controller-decorator 4.0.0-beta.1 → 4.0.0-beta.10

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.
Files changed (99) hide show
  1. package/README.md +12 -0
  2. package/dist/builder/ControllerMetaBuilderFactory.js +41 -0
  3. package/dist/builder/index.d.ts +1 -0
  4. package/dist/builder/index.js +2 -0
  5. package/dist/decorator/Acl.js +22 -0
  6. package/dist/decorator/Context.js +11 -0
  7. package/dist/decorator/Middleware.js +69 -0
  8. package/{src → dist}/decorator/http/HTTPController.js +2 -2
  9. package/dist/decorator/http/HTTPMethod.js +17 -0
  10. package/dist/decorator/http/HTTPParam.js +75 -0
  11. package/dist/decorator/http/Host.js +25 -0
  12. package/dist/decorator/http/index.d.ts +4 -0
  13. package/dist/decorator/http/index.js +5 -0
  14. package/dist/decorator/index.d.ts +4 -0
  15. package/dist/decorator/index.js +5 -0
  16. package/{src → dist}/impl/http/HTTPControllerMetaBuilder.d.ts +1 -1
  17. package/dist/impl/http/HTTPControllerMetaBuilder.js +57 -0
  18. package/{src → dist}/impl/http/HTTPControllerMethodMetaBuilder.d.ts +1 -1
  19. package/dist/impl/http/HTTPControllerMethodMetaBuilder.js +100 -0
  20. package/dist/impl/http/index.d.ts +2 -0
  21. package/dist/impl/http/index.js +3 -0
  22. package/dist/impl/index.d.ts +1 -0
  23. package/dist/impl/index.js +2 -0
  24. package/dist/index.d.ts +6 -0
  25. package/dist/index.js +7 -0
  26. package/{src → dist}/model/HTTPControllerMeta.d.ts +1 -1
  27. package/dist/model/HTTPControllerMeta.js +60 -0
  28. package/{src → dist}/model/HTTPCookies.js +1 -1
  29. package/dist/model/HTTPMethodMeta.js +124 -0
  30. package/{src → dist}/model/HTTPRequest.d.ts +1 -1
  31. package/{src → dist}/model/HTTPRequest.js +1 -1
  32. package/{src → dist}/model/HTTPResponse.d.ts +1 -1
  33. package/{src → dist}/model/HTTPResponse.js +1 -1
  34. package/dist/model/index.d.ts +5 -0
  35. package/dist/model/index.js +6 -0
  36. package/{src → dist}/util/ControllerInfoUtil.d.ts +1 -1
  37. package/dist/util/ControllerInfoUtil.js +46 -0
  38. package/dist/util/ControllerMetadataUtil.js +20 -0
  39. package/dist/util/HTTPInfoUtil.js +64 -0
  40. package/{src → dist}/util/HTTPPriorityUtil.js +1 -1
  41. package/{src → dist}/util/MethodInfoUtil.d.ts +1 -1
  42. package/dist/util/MethodInfoUtil.js +72 -0
  43. package/dist/util/index.d.ts +6 -0
  44. package/dist/util/index.js +7 -0
  45. package/dist/util/validator/ControllerValidator.js +15 -0
  46. package/dist/util/validator/MethodValidator.js +31 -0
  47. package/dist/util/validator/index.d.ts +2 -0
  48. package/dist/util/validator/index.js +3 -0
  49. package/package.json +26 -28
  50. package/src/builder/ControllerMetaBuilderFactory.js +0 -41
  51. package/src/builder/index.d.ts +0 -1
  52. package/src/builder/index.js +0 -2
  53. package/src/decorator/Acl.js +0 -22
  54. package/src/decorator/Context.js +0 -11
  55. package/src/decorator/Middleware.js +0 -69
  56. package/src/decorator/http/HTTPMethod.js +0 -17
  57. package/src/decorator/http/HTTPParam.js +0 -75
  58. package/src/decorator/http/Host.js +0 -25
  59. package/src/decorator/http/index.d.ts +0 -4
  60. package/src/decorator/http/index.js +0 -5
  61. package/src/decorator/index.d.ts +0 -4
  62. package/src/decorator/index.js +0 -5
  63. package/src/impl/http/HTTPControllerMetaBuilder.js +0 -57
  64. package/src/impl/http/HTTPControllerMethodMetaBuilder.js +0 -100
  65. package/src/impl/http/index.d.ts +0 -2
  66. package/src/impl/http/index.js +0 -3
  67. package/src/impl/index.d.ts +0 -1
  68. package/src/impl/index.js +0 -2
  69. package/src/index.d.ts +0 -6
  70. package/src/index.js +0 -7
  71. package/src/model/HTTPControllerMeta.js +0 -59
  72. package/src/model/HTTPMethodMeta.js +0 -124
  73. package/src/model/index.d.ts +0 -5
  74. package/src/model/index.js +0 -6
  75. package/src/util/ControllerInfoUtil.js +0 -46
  76. package/src/util/ControllerMetadataUtil.js +0 -20
  77. package/src/util/HTTPInfoUtil.js +0 -64
  78. package/src/util/MethodInfoUtil.js +0 -72
  79. package/src/util/index.d.ts +0 -6
  80. package/src/util/index.js +0 -7
  81. package/src/util/validator/ControllerValidator.js +0 -15
  82. package/src/util/validator/MethodValidator.js +0 -31
  83. package/src/util/validator/index.d.ts +0 -2
  84. package/src/util/validator/index.js +0 -3
  85. /package/{src → dist}/builder/ControllerMetaBuilderFactory.d.ts +0 -0
  86. /package/{src → dist}/decorator/Acl.d.ts +0 -0
  87. /package/{src → dist}/decorator/Context.d.ts +0 -0
  88. /package/{src → dist}/decorator/Middleware.d.ts +0 -0
  89. /package/{src → dist}/decorator/http/HTTPController.d.ts +0 -0
  90. /package/{src → dist}/decorator/http/HTTPMethod.d.ts +0 -0
  91. /package/{src → dist}/decorator/http/HTTPParam.d.ts +0 -0
  92. /package/{src → dist}/decorator/http/Host.d.ts +0 -0
  93. /package/{src → dist}/model/HTTPCookies.d.ts +0 -0
  94. /package/{src → dist}/model/HTTPMethodMeta.d.ts +0 -0
  95. /package/{src → dist}/util/ControllerMetadataUtil.d.ts +0 -0
  96. /package/{src → dist}/util/HTTPInfoUtil.d.ts +0 -0
  97. /package/{src → dist}/util/HTTPPriorityUtil.d.ts +0 -0
  98. /package/{src → dist}/util/validator/ControllerValidator.d.ts +0 -0
  99. /package/{src → dist}/util/validator/MethodValidator.d.ts +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eggjs/controller-decorator",
3
- "version": "4.0.0-beta.1",
3
+ "version": "4.0.0-beta.10",
4
4
  "description": "tegg controller decorator",
5
5
  "keywords": [
6
6
  "egg",
@@ -11,24 +11,15 @@
11
11
  ],
12
12
  "type": "module",
13
13
  "exports": {
14
- ".": {
15
- "types": "./src/index.d.ts",
16
- "default": "./src/index.js"
17
- }
14
+ ".": "./dist/index.js",
15
+ "./package.json": "./package.json"
18
16
  },
19
17
  "files": [
20
- "src/**/*.js",
21
- "src/**/*.d.ts"
18
+ "dist"
22
19
  ],
23
- "scripts": {
24
- "clean": "tsc -b --clean",
25
- "tsc": "npm run clean && tsc -p ./tsconfig.json",
26
- "tsc:pub": "npm run tsc",
27
- "prepublishOnly": "npm run tsc:pub"
28
- },
29
20
  "author": "killagu <killa123@126.com>",
30
21
  "license": "MIT",
31
- "homepage": "https://github.com/eggjs/tegg",
22
+ "homepage": "https://github.com/eggjs/tegg/tree/next/core/controller-decorator",
32
23
  "bugs": {
33
24
  "url": "https://github.com/eggjs/tegg/issues"
34
25
  },
@@ -38,27 +29,34 @@
38
29
  "directory": "core/controller-decorator"
39
30
  },
40
31
  "engines": {
41
- "node": ">=20.0.0"
32
+ "node": ">=22.18.0"
42
33
  },
43
34
  "dependencies": {
44
- "@eggjs/aop-decorator": "^4.0.0-beta.1",
45
- "@eggjs/cookies": "^3.1.0",
46
- "@eggjs/core-decorator": "^4.0.0-beta.1",
47
- "@eggjs/tegg-common-util": "^4.0.0-beta.1",
48
- "@eggjs/tegg-metadata": "^4.0.0-beta.1",
49
- "@eggjs/tegg-types": "^4.0.0-beta.1",
35
+ "@eggjs/cookies": "beta",
50
36
  "is-type-of": "^2.2.0",
51
37
  "path-to-regexp": "^1.9.0",
52
- "reflect-metadata": "^0.2.2"
38
+ "@eggjs/aop-decorator": "4.0.0-beta.10",
39
+ "@eggjs/tegg-metadata": "4.0.0-beta.10",
40
+ "@eggjs/tegg-common-util": "4.0.0-beta.10",
41
+ "@eggjs/tegg-types": "4.0.0-beta.10",
42
+ "@eggjs/core-decorator": "4.0.0-beta.10"
53
43
  },
54
44
  "devDependencies": {
55
- "@types/node": "22",
56
- "egg": "4",
57
- "ts-node": "10",
58
- "typescript": "5"
45
+ "@types/node": "^22.10.5",
46
+ "egg": "beta",
47
+ "typescript": "^5.9.3",
48
+ "tsdown": "^0.15.6",
49
+ "unplugin-unused": "^0.5.3"
59
50
  },
60
51
  "publishConfig": {
61
52
  "access": "public"
62
53
  },
63
- "gitHead": "79a22905272d6de7fe06152231dff65d213d9166"
64
- }
54
+ "main": "./dist/index.js",
55
+ "module": "./dist/index.js",
56
+ "types": "./dist/index.d.ts",
57
+ "scripts": {
58
+ "clean": "rimraf dist",
59
+ "build": "tsdown && rimraf dist && tsc -b --clean && tsc",
60
+ "typecheck": "tsc --noEmit"
61
+ }
62
+ }
@@ -1,41 +0,0 @@
1
- import { ControllerInfoUtil, MethodInfoUtil } from '../util/index.js';
2
- import { Pointcut } from '@eggjs/aop-decorator';
3
- export class ControllerMetaBuilderFactory {
4
- static builderCreatorMap = new Map();
5
- static registerControllerMetaBuilder(controllerType, controllerBuilderCreator) {
6
- this.builderCreatorMap.set(controllerType, controllerBuilderCreator);
7
- }
8
- static createControllerMetaBuilder(clazz, controllerType) {
9
- if (!controllerType) {
10
- controllerType = ControllerInfoUtil.getControllerType(clazz);
11
- }
12
- if (!controllerType) {
13
- return;
14
- }
15
- const creator = this.builderCreatorMap.get(controllerType);
16
- if (!creator) {
17
- throw new Error(`not found controller meta builder for type ${controllerType}`);
18
- }
19
- return creator(clazz);
20
- }
21
- static build(clazz, controllerType) {
22
- const builder = ControllerMetaBuilderFactory.createControllerMetaBuilder(clazz, controllerType);
23
- if (!builder)
24
- return;
25
- const metadata = builder.build();
26
- if (!metadata)
27
- return;
28
- const controllerAopMws = ControllerInfoUtil.getControllerAopMiddlewares(clazz);
29
- for (const { name } of metadata.methods) {
30
- const methodAopMws = MethodInfoUtil.getMethodAopMiddlewares(clazz, name);
31
- if (MethodInfoUtil.shouldRegisterAopMiddlewarePointCut(clazz, name)) {
32
- for (const mw of [...methodAopMws, ...controllerAopMws].reverse()) {
33
- Pointcut(mw)(clazz.prototype, name);
34
- }
35
- MethodInfoUtil.registerAopMiddlewarePointcut(clazz, name);
36
- }
37
- }
38
- return metadata;
39
- }
40
- }
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29udHJvbGxlck1ldGFCdWlsZGVyRmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkNvbnRyb2xsZXJNZXRhQnVpbGRlckZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVoRCxNQUFNLE9BQU8sNEJBQTRCO0lBQy9CLE1BQU0sQ0FBQyxpQkFBaUIsR0FBMEQsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUVwRyxNQUFNLENBQUMsNkJBQTZCLENBQUMsY0FBa0MsRUFBRSx3QkFBc0Q7UUFDN0gsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxjQUFjLEVBQUUsd0JBQXdCLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRUQsTUFBTSxDQUFDLDJCQUEyQixDQUFDLEtBQXdCLEVBQUUsY0FBbUM7UUFDOUYsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3BCLGNBQWMsR0FBRyxrQkFBa0IsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvRCxDQUFDO1FBQ0QsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3BCLE9BQU87UUFDVCxDQUFDO1FBQ0QsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUMzRCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDYixNQUFNLElBQUksS0FBSyxDQUFDLDhDQUE4QyxjQUFjLEVBQUUsQ0FBQyxDQUFDO1FBQ2xGLENBQUM7UUFDRCxPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUF3QixFQUFFLGNBQW1DO1FBQ3hFLE1BQU0sT0FBTyxHQUFHLDRCQUE0QixDQUFDLDJCQUEyQixDQUFDLEtBQUssRUFBRSxjQUFjLENBQUMsQ0FBQztRQUNoRyxJQUFJLENBQUMsT0FBTztZQUFFLE9BQU87UUFDckIsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxRQUFRO1lBQUUsT0FBTztRQUN0QixNQUFNLGdCQUFnQixHQUFHLGtCQUFrQixDQUFDLDJCQUEyQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQy9FLEtBQUssTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUN4QyxNQUFNLFlBQVksR0FBRyxjQUFjLENBQUMsdUJBQXVCLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ3pFLElBQUksY0FBYyxDQUFDLG1DQUFtQyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUNwRSxLQUFLLE1BQU0sRUFBRSxJQUFJLENBQUUsR0FBRyxZQUFZLEVBQUUsR0FBRyxnQkFBZ0IsQ0FBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7b0JBQ3BFLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUN0QyxDQUFDO2dCQUNELGNBQWMsQ0FBQyw2QkFBNkIsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDNUQsQ0FBQztRQUNILENBQUM7UUFFRCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDIn0=
@@ -1 +0,0 @@
1
- export * from './ControllerMetaBuilderFactory.js';
@@ -1,2 +0,0 @@
1
- export * from './ControllerMetaBuilderFactory.js';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG1DQUFtQyxDQUFDIn0=
@@ -1,22 +0,0 @@
1
- import assert from 'node:assert';
2
- import { ControllerInfoUtil, MethodInfoUtil } from '../util/index.js';
3
- export function Acl(code) {
4
- function classAcl(constructor) {
5
- ControllerInfoUtil.setControllerAcl(code, constructor);
6
- }
7
- function methodAcl(target, propertyKey) {
8
- assert(typeof propertyKey === 'string', `[controller/${target.name}] expect method name be typeof string, but now is ${String(propertyKey)}`);
9
- const controllerClazz = target.constructor;
10
- const methodName = propertyKey;
11
- MethodInfoUtil.setMethodAcl(code, controllerClazz, methodName);
12
- }
13
- return function (target, propertyKey) {
14
- if (propertyKey === undefined) {
15
- classAcl(target);
16
- }
17
- else {
18
- methodAcl(target, propertyKey);
19
- }
20
- };
21
- }
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWNsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiQWNsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sTUFBTSxNQUFNLGFBQWEsQ0FBQztBQUVqQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFdEUsTUFBTSxVQUFVLEdBQUcsQ0FBQyxJQUFhO0lBQy9CLFNBQVMsUUFBUSxDQUFDLFdBQThCO1FBQzlDLGtCQUFrQixDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQsU0FBUyxTQUFTLENBQUMsTUFBVyxFQUFFLFdBQXdCO1FBQ3RELE1BQU0sQ0FBQyxPQUFPLFdBQVcsS0FBSyxRQUFRLEVBQ3BDLGVBQWUsTUFBTSxDQUFDLElBQUkscURBQXFELE1BQU0sQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDeEcsTUFBTSxlQUFlLEdBQUcsTUFBTSxDQUFDLFdBQWdDLENBQUM7UUFDaEUsTUFBTSxVQUFVLEdBQUcsV0FBcUIsQ0FBQztRQUN6QyxjQUFjLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxlQUFlLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVELE9BQU8sVUFBUyxNQUFXLEVBQUUsV0FBeUI7UUFDcEQsSUFBSSxXQUFXLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDOUIsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ25CLENBQUM7YUFBTSxDQUFDO1lBQ04sU0FBUyxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQztRQUNqQyxDQUFDO0lBQ0gsQ0FBQyxDQUFDO0FBQ0osQ0FBQyJ9
@@ -1,11 +0,0 @@
1
- import assert from 'node:assert';
2
- import { MethodInfoUtil } from '../util/index.js';
3
- export function Context() {
4
- return function (target, propertyKey, parameterIndex) {
5
- assert(typeof propertyKey === 'string', `[controller/${target.name}] expect method name be typeof string, but now is ${String(propertyKey)}`);
6
- const methodName = propertyKey;
7
- const controllerClazz = target.constructor;
8
- MethodInfoUtil.setMethodContextIndexInArgs(parameterIndex, controllerClazz, methodName);
9
- };
10
- }
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkNvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxNQUFNLE1BQU0sYUFBYSxDQUFDO0FBRWpDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVsRCxNQUFNLFVBQVUsT0FBTztJQUNyQixPQUFPLFVBQVMsTUFBVyxFQUFFLFdBQXdCLEVBQUUsY0FBc0I7UUFDM0UsTUFBTSxDQUFDLE9BQU8sV0FBVyxLQUFLLFFBQVEsRUFDcEMsZUFBZSxNQUFNLENBQUMsSUFBSSxxREFBcUQsTUFBTSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN4RyxNQUFNLFVBQVUsR0FBRyxXQUFxQixDQUFDO1FBQ3pDLE1BQU0sZUFBZSxHQUFHLE1BQU0sQ0FBQyxXQUFnQyxDQUFDO1FBQ2hFLGNBQWMsQ0FBQywyQkFBMkIsQ0FBQyxjQUFjLEVBQUUsZUFBZSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQzFGLENBQUMsQ0FBQztBQUNKLENBQUMifQ==
@@ -1,69 +0,0 @@
1
- import assert from 'node:assert';
2
- import { isClass } from 'is-type-of';
3
- import { AdviceInfoUtil } from '@eggjs/aop-decorator';
4
- import { ControllerInfoUtil, MethodInfoUtil } from '../util/index.js';
5
- var MiddlewareType;
6
- (function (MiddlewareType) {
7
- MiddlewareType["AOP"] = "AOP";
8
- MiddlewareType["MiddlewareFunc"] = "MiddlewareFunc";
9
- })(MiddlewareType || (MiddlewareType = {}));
10
- function isAop(mw) {
11
- return isClass(mw) && AdviceInfoUtil.isAdvice(mw);
12
- }
13
- function isAopTypeOrMiddlewareType(middlewares) {
14
- const adviceCount = middlewares.filter(t => isAop(t)).length;
15
- if (adviceCount) {
16
- if (adviceCount === middlewares.length) {
17
- return MiddlewareType.AOP;
18
- }
19
- throw new Error('AOP and MiddlewareFunc can not be mixed');
20
- }
21
- return MiddlewareType.MiddlewareFunc;
22
- }
23
- export function Middleware(...middlewares) {
24
- function functionTypeClassMiddleware(constructor) {
25
- middlewares.forEach(mid => {
26
- ControllerInfoUtil.addControllerMiddleware(mid, constructor);
27
- });
28
- }
29
- function aopTypeClassMiddleware(constructor) {
30
- for (const aopAdvice of middlewares) {
31
- ControllerInfoUtil.addControllerAopMiddleware(aopAdvice, constructor);
32
- }
33
- }
34
- function functionTypeMethodMiddleware(target, propertyKey) {
35
- assert(typeof propertyKey === 'string', `[controller/${target.name}] expect method name be typeof string, but now is ${String(propertyKey)}`);
36
- const controllerClazz = target.constructor;
37
- const methodName = propertyKey;
38
- middlewares.forEach(mid => {
39
- MethodInfoUtil.addMethodMiddleware(mid, controllerClazz, methodName);
40
- });
41
- }
42
- function aopTypeMethodMiddleware(target, propertyKey) {
43
- const controllerClazz = target.constructor;
44
- const methodName = propertyKey;
45
- for (const aopAdvice of middlewares) {
46
- MethodInfoUtil.addMethodAopMiddleware(aopAdvice, controllerClazz, methodName);
47
- }
48
- }
49
- return function (target, propertyKey) {
50
- const type = isAopTypeOrMiddlewareType(middlewares);
51
- if (propertyKey === undefined) {
52
- if (type === MiddlewareType.AOP) {
53
- aopTypeClassMiddleware(target);
54
- }
55
- else {
56
- functionTypeClassMiddleware(target);
57
- }
58
- }
59
- else {
60
- if (type === MiddlewareType.AOP) {
61
- aopTypeMethodMiddleware(target, propertyKey);
62
- }
63
- else {
64
- functionTypeMethodMiddleware(target, propertyKey);
65
- }
66
- }
67
- };
68
- }
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlkZGxld2FyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIk1pZGRsZXdhcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxNQUFNLE1BQU0sYUFBYSxDQUFDO0FBRWpDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDckMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUV0RSxJQUFLLGNBR0o7QUFIRCxXQUFLLGNBQWM7SUFDakIsNkJBQVcsQ0FBQTtJQUNYLG1EQUFpQyxDQUFBO0FBQ25DLENBQUMsRUFISSxjQUFjLEtBQWQsY0FBYyxRQUdsQjtBQUVELFNBQVMsS0FBSyxDQUFDLEVBQStDO0lBQzVELE9BQU8sT0FBTyxDQUFDLEVBQUUsQ0FBQyxJQUFJLGNBQWMsQ0FBQyxRQUFRLENBQUMsRUFBZ0MsQ0FBQyxDQUFDO0FBQ2xGLENBQUM7QUFFRCxTQUFTLHlCQUF5QixDQUFDLFdBQXNFO0lBQ3ZHLE1BQU0sV0FBVyxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDN0QsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUNoQixJQUFJLFdBQVcsS0FBSyxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDdkMsT0FBTyxjQUFjLENBQUMsR0FBRyxDQUFDO1FBQzVCLENBQUM7UUFDRCxNQUFNLElBQUksS0FBSyxDQUFDLHlDQUF5QyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUNELE9BQU8sY0FBYyxDQUFDLGNBQWMsQ0FBQztBQUN2QyxDQUFDO0FBRUQsTUFBTSxVQUFVLFVBQVUsQ0FBQyxHQUFHLFdBQXNFO0lBQ2xHLFNBQVMsMkJBQTJCLENBQUMsV0FBOEI7UUFDakUsV0FBVyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUN4QixrQkFBa0IsQ0FBQyx1QkFBdUIsQ0FBQyxHQUFxQixFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ2pGLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFNBQVMsc0JBQXNCLENBQUMsV0FBOEI7UUFDNUQsS0FBSyxNQUFNLFNBQVMsSUFBSSxXQUEyQyxFQUFFLENBQUM7WUFDcEUsa0JBQWtCLENBQUMsMEJBQTBCLENBQUMsU0FBUyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ3hFLENBQUM7SUFDSCxDQUFDO0lBRUQsU0FBUyw0QkFBNEIsQ0FBQyxNQUFXLEVBQUUsV0FBd0I7UUFDekUsTUFBTSxDQUFDLE9BQU8sV0FBVyxLQUFLLFFBQVEsRUFDcEMsZUFBZSxNQUFNLENBQUMsSUFBSSxxREFBcUQsTUFBTSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN4RyxNQUFNLGVBQWUsR0FBRyxNQUFNLENBQUMsV0FBZ0MsQ0FBQztRQUNoRSxNQUFNLFVBQVUsR0FBRyxXQUFxQixDQUFDO1FBQ3pDLFdBQVcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDeEIsY0FBYyxDQUFDLG1CQUFtQixDQUFDLEdBQXFCLEVBQUUsZUFBZSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ3pGLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFNBQVMsdUJBQXVCLENBQUMsTUFBVyxFQUFFLFdBQXdCO1FBQ3BFLE1BQU0sZUFBZSxHQUFHLE1BQU0sQ0FBQyxXQUFnQyxDQUFDO1FBQ2hFLE1BQU0sVUFBVSxHQUFHLFdBQXFCLENBQUM7UUFDekMsS0FBSyxNQUFNLFNBQVMsSUFBSSxXQUEyQyxFQUFFLENBQUM7WUFDcEUsY0FBYyxDQUFDLHNCQUFzQixDQUFDLFNBQVMsRUFBRSxlQUFlLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDaEYsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLFVBQVMsTUFBVyxFQUFFLFdBQXlCO1FBQ3BELE1BQU0sSUFBSSxHQUFHLHlCQUF5QixDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3BELElBQUksV0FBVyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzlCLElBQUksSUFBSSxLQUFLLGNBQWMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztnQkFDaEMsc0JBQXNCLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDakMsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLDJCQUEyQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3RDLENBQUM7UUFDSCxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksSUFBSSxLQUFLLGNBQWMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztnQkFDaEMsdUJBQXVCLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1lBQy9DLENBQUM7aUJBQU0sQ0FBQztnQkFDTiw0QkFBNEIsQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUM7WUFDcEQsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDLENBQUM7QUFDSixDQUFDIn0=
@@ -1,17 +0,0 @@
1
- import assert from 'node:assert';
2
- import { ControllerType } from '@eggjs/tegg-types';
3
- import { HTTPInfoUtil, MethodInfoUtil } from '../../util/index.js';
4
- export function HTTPMethod(param) {
5
- return function (target, propertyKey) {
6
- assert(typeof propertyKey === 'string', `[controller/${target.name}] expect method name be typeof string, but now is ${String(propertyKey)}`);
7
- const controllerClazz = target.constructor;
8
- const methodName = propertyKey;
9
- MethodInfoUtil.setMethodControllerType(controllerClazz, methodName, ControllerType.HTTP);
10
- HTTPInfoUtil.setHTTPMethodPath(param.path, controllerClazz, methodName);
11
- HTTPInfoUtil.setHTTPMethodMethod(param.method, controllerClazz, methodName);
12
- if (param.priority !== undefined) {
13
- HTTPInfoUtil.setHTTPMethodPriority(param.priority, controllerClazz, methodName);
14
- }
15
- };
16
- }
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSFRUUE1ldGhvZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkhUVFBNZXRob2QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxNQUFNLE1BQU0sYUFBYSxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVuRCxPQUFPLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRW5FLE1BQU0sVUFBVSxVQUFVLENBQUMsS0FBdUI7SUFDaEQsT0FBTyxVQUFTLE1BQVcsRUFBRSxXQUF3QjtRQUNuRCxNQUFNLENBQUMsT0FBTyxXQUFXLEtBQUssUUFBUSxFQUNwQyxlQUFlLE1BQU0sQ0FBQyxJQUFJLHFEQUFxRCxNQUFNLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3hHLE1BQU0sZUFBZSxHQUFHLE1BQU0sQ0FBQyxXQUFnQyxDQUFDO1FBQ2hFLE1BQU0sVUFBVSxHQUFHLFdBQXFCLENBQUM7UUFDekMsY0FBYyxDQUFDLHVCQUF1QixDQUFDLGVBQWUsRUFBRSxVQUFVLEVBQUUsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pGLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLGVBQWUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUN4RSxZQUFZLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxlQUFlLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDNUUsSUFBSSxLQUFLLENBQUMsUUFBUSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ2pDLFlBQVksQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLGVBQWUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUNsRixDQUFDO0lBQ0gsQ0FBQyxDQUFDO0FBQ0osQ0FBQyJ9
@@ -1,75 +0,0 @@
1
- import assert from 'node:assert';
2
- import { HTTPParamType } from '@eggjs/tegg-types';
3
- import { ObjectUtils } from '@eggjs/tegg-common-util';
4
- import { HTTPInfoUtil } from '../../util/index.js';
5
- // TODO url params
6
- // /foo/:id
7
- // refactor HTTPQuery, HTTPBody, HTTPParam
8
- export function HTTPBody() {
9
- return function (target, propertyKey, parameterIndex) {
10
- assert(typeof propertyKey === 'string', `[controller/${target.name}] expect method name be typeof string, but now is ${String(propertyKey)}`);
11
- const methodName = propertyKey;
12
- const controllerClazz = target.constructor;
13
- HTTPInfoUtil.setHTTPMethodParamType(HTTPParamType.BODY, parameterIndex, controllerClazz, methodName);
14
- };
15
- }
16
- export function HTTPHeaders() {
17
- return function (target, propertyKey, parameterIndex) {
18
- assert(typeof propertyKey === 'string', `[controller/${target.name}] expect method name be typeof string, but now is ${String(propertyKey)}`);
19
- const methodName = propertyKey;
20
- const controllerClazz = target.constructor;
21
- HTTPInfoUtil.setHTTPMethodParamType(HTTPParamType.HEADERS, parameterIndex, controllerClazz, methodName);
22
- };
23
- }
24
- export function HTTPQuery(param) {
25
- return function (target, propertyKey, parameterIndex) {
26
- assert(typeof propertyKey === 'string', `[controller/${target.name}] expect method name be typeof string, but now is ${String(propertyKey)}`);
27
- const methodName = propertyKey;
28
- const controllerClazz = target.constructor;
29
- const argNames = ObjectUtils.getFunctionArgNameList(target[propertyKey]);
30
- const name = param?.name || argNames[parameterIndex];
31
- HTTPInfoUtil.setHTTPMethodParamType(HTTPParamType.QUERY, parameterIndex, controllerClazz, methodName);
32
- HTTPInfoUtil.setHTTPMethodParamName(name, parameterIndex, controllerClazz, methodName);
33
- };
34
- }
35
- export function HTTPQueries(param) {
36
- return function (target, propertyKey, parameterIndex) {
37
- assert(typeof propertyKey === 'string', `[controller/${target.name}] expect method name be typeof string, but now is ${String(propertyKey)}`);
38
- const methodName = propertyKey;
39
- const controllerClazz = target.constructor;
40
- const argNames = ObjectUtils.getFunctionArgNameList(target[propertyKey]);
41
- const name = param?.name || argNames[parameterIndex];
42
- HTTPInfoUtil.setHTTPMethodParamType(HTTPParamType.QUERIES, parameterIndex, controllerClazz, methodName);
43
- HTTPInfoUtil.setHTTPMethodParamName(name, parameterIndex, controllerClazz, methodName);
44
- };
45
- }
46
- export function HTTPParam(param) {
47
- return function (target, propertyKey, parameterIndex) {
48
- assert(typeof propertyKey === 'string', `[controller/${target.name}] expect method name be typeof string, but now is ${String(propertyKey)}`);
49
- const methodName = propertyKey;
50
- const controllerClazz = target.constructor;
51
- const argNames = ObjectUtils.getFunctionArgNameList(target[propertyKey]);
52
- const name = param?.name || argNames[parameterIndex];
53
- HTTPInfoUtil.setHTTPMethodParamType(HTTPParamType.PARAM, parameterIndex, controllerClazz, methodName);
54
- HTTPInfoUtil.setHTTPMethodParamName(name, parameterIndex, controllerClazz, methodName);
55
- };
56
- }
57
- export function Request() {
58
- return function (target, propertyKey, parameterIndex) {
59
- const [nodeMajor] = process.versions.node.split('.').map(v => Number(v));
60
- assert(nodeMajor >= 16, `[controller/${target.name}] expect node version >=16, but now is ${nodeMajor}`);
61
- assert(typeof propertyKey === 'string', `[controller/${target.name}] expect method name be typeof string, but now is ${String(propertyKey)}`);
62
- const methodName = propertyKey;
63
- const controllerClazz = target.constructor;
64
- HTTPInfoUtil.setHTTPMethodParamType(HTTPParamType.REQUEST, parameterIndex, controllerClazz, methodName);
65
- };
66
- }
67
- export function Cookies() {
68
- return function (target, propertyKey, parameterIndex) {
69
- assert(typeof propertyKey === 'string', `[controller/${target.name}] expect method name be typeof string, but now is ${String(propertyKey)}`);
70
- const methodName = propertyKey;
71
- const controllerClazz = target.constructor;
72
- HTTPInfoUtil.setHTTPMethodParamType(HTTPParamType.COOKIES, parameterIndex, controllerClazz, methodName);
73
- };
74
- }
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSFRUUFBhcmFtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiSFRUUFBhcmFtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sTUFBTSxNQUFNLGFBQWEsQ0FBQztBQUNqQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFbEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVuRCxrQkFBa0I7QUFDbEIsV0FBVztBQUNYLDBDQUEwQztBQUUxQyxNQUFNLFVBQVUsUUFBUTtJQUN0QixPQUFPLFVBQVMsTUFBVyxFQUFFLFdBQXdCLEVBQUUsY0FBc0I7UUFDM0UsTUFBTSxDQUFDLE9BQU8sV0FBVyxLQUFLLFFBQVEsRUFDcEMsZUFBZSxNQUFNLENBQUMsSUFBSSxxREFBcUQsTUFBTSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN4RyxNQUFNLFVBQVUsR0FBRyxXQUFxQixDQUFDO1FBQ3pDLE1BQU0sZUFBZSxHQUFHLE1BQU0sQ0FBQyxXQUFnQyxDQUFDO1FBQ2hFLFlBQVksQ0FBQyxzQkFBc0IsQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLGNBQWMsRUFBRSxlQUFlLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDdkcsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxXQUFXO0lBQ3pCLE9BQU8sVUFBUyxNQUFXLEVBQUUsV0FBd0IsRUFBRSxjQUFzQjtRQUMzRSxNQUFNLENBQUMsT0FBTyxXQUFXLEtBQUssUUFBUSxFQUNwQyxlQUFlLE1BQU0sQ0FBQyxJQUFJLHFEQUFxRCxNQUFNLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3hHLE1BQU0sVUFBVSxHQUFHLFdBQXFCLENBQUM7UUFDekMsTUFBTSxlQUFlLEdBQUcsTUFBTSxDQUFDLFdBQWdDLENBQUM7UUFDaEUsWUFBWSxD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
@@ -1,25 +0,0 @@
1
- import assert from 'node:assert';
2
- import { ControllerInfoUtil, MethodInfoUtil } from '../../util/index.js';
3
- export function Host(host) {
4
- function parseHost() {
5
- return Array.isArray(host) ? host : [host];
6
- }
7
- function classHost(constructor) {
8
- ControllerInfoUtil.addControllerHosts(parseHost(), constructor);
9
- }
10
- function methodHost(target, propertyKey) {
11
- assert(typeof propertyKey === 'string', `[controller/${target.name}] expect method name be typeof string, but now is ${String(propertyKey)}`);
12
- const controllerClazz = target.constructor;
13
- const methodName = propertyKey;
14
- MethodInfoUtil.setMethodHosts(parseHost(), controllerClazz, methodName);
15
- }
16
- return function (target, propertyKey) {
17
- if (propertyKey === undefined) {
18
- classHost(target);
19
- }
20
- else {
21
- methodHost(target, propertyKey);
22
- }
23
- };
24
- }
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSG9zdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkhvc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxNQUFNLE1BQU0sYUFBYSxDQUFDO0FBRWpDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV6RSxNQUFNLFVBQVUsSUFBSSxDQUFDLElBQWM7SUFFakMsU0FBUyxTQUFTO1FBQ2hCLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFFLElBQUksQ0FBRSxDQUFDO0lBQy9DLENBQUM7SUFFRCxTQUFTLFNBQVMsQ0FBQyxXQUE4QjtRQUMvQyxrQkFBa0IsQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLEVBQUUsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRUQsU0FBUyxVQUFVLENBQUMsTUFBVyxFQUFFLFdBQXdCO1FBQ3ZELE1BQU0sQ0FBQyxPQUFPLFdBQVcsS0FBSyxRQUFRLEVBQ3BDLGVBQWUsTUFBTSxDQUFDLElBQUkscURBQXFELE1BQU0sQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDeEcsTUFBTSxlQUFlLEdBQUcsTUFBTSxDQUFDLFdBQWdDLENBQUM7UUFDaEUsTUFBTSxVQUFVLEdBQUcsV0FBcUIsQ0FBQztRQUN6QyxjQUFjLENBQUMsY0FBYyxDQUFDLFNBQVMsRUFBRSxFQUFFLGVBQWUsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUMxRSxDQUFDO0lBRUQsT0FBTyxVQUFTLE1BQVcsRUFBRSxXQUF5QjtRQUNwRCxJQUFJLFdBQVcsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUM5QixTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDcEIsQ0FBQzthQUFNLENBQUM7WUFDTixVQUFVLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ2xDLENBQUM7SUFDSCxDQUFDLENBQUM7QUFDSixDQUFDIn0=
@@ -1,4 +0,0 @@
1
- export * from './Host.js';
2
- export * from './HTTPController.js';
3
- export * from './HTTPMethod.js';
4
- export * from './HTTPParam.js';
@@ -1,5 +0,0 @@
1
- export * from './Host.js';
2
- export * from './HTTPController.js';
3
- export * from './HTTPMethod.js';
4
- export * from './HTTPParam.js';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxnQkFBZ0IsQ0FBQyJ9
@@ -1,4 +0,0 @@
1
- export * from './http/index.js';
2
- export * from './Acl.js';
3
- export * from './Context.js';
4
- export * from './Middleware.js';
@@ -1,5 +0,0 @@
1
- export * from './http/index.js';
2
- export * from './Acl.js';
3
- export * from './Context.js';
4
- export * from './Middleware.js';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsaUJBQWlCLENBQUMifQ==
@@ -1,57 +0,0 @@
1
- import assert from 'node:assert';
2
- import { PrototypeUtil } from '@eggjs/core-decorator';
3
- import { ObjectUtils } from '@eggjs/tegg-common-util';
4
- import { ClassUtil } from '@eggjs/tegg-metadata';
5
- import { ControllerType } from '@eggjs/tegg-types';
6
- import { ControllerMetaBuilderFactory } from '../../builder/index.js';
7
- import { HTTPControllerMeta } from '../../model/index.js';
8
- import { ControllerInfoUtil, ControllerMetadataUtil, HTTPInfoUtil, ControllerValidator } from '../../util/index.js';
9
- import { HTTPControllerMethodMetaBuilder } from './HTTPControllerMethodMetaBuilder.js';
10
- export class HTTPControllerMetaBuilder {
11
- clazz;
12
- constructor(clazz) {
13
- this.clazz = clazz;
14
- }
15
- buildMethod() {
16
- const methodNames = ObjectUtils.getProperties(this.clazz.prototype);
17
- const methods = [];
18
- for (const methodName of methodNames) {
19
- const builder = new HTTPControllerMethodMetaBuilder(this.clazz, methodName);
20
- const methodMeta = builder.build();
21
- if (methodMeta) {
22
- methods.push(methodMeta);
23
- }
24
- }
25
- return methods;
26
- }
27
- build() {
28
- ControllerValidator.validate(this.clazz);
29
- const controllerType = ControllerInfoUtil.getControllerType(this.clazz);
30
- assert(controllerType === ControllerType.HTTP, 'invalidate controller type');
31
- const httpPath = HTTPInfoUtil.getHTTPPath(this.clazz);
32
- const httpMiddlewares = ControllerInfoUtil.getControllerMiddlewares(this.clazz);
33
- const methods = this.buildMethod();
34
- const clazzName = this.clazz.name;
35
- const controllerName = ControllerInfoUtil.getControllerName(this.clazz) || clazzName;
36
- const property = PrototypeUtil.getProperty(this.clazz);
37
- const protoName = property.name;
38
- const needAcl = ControllerInfoUtil.hasControllerAcl(this.clazz);
39
- const aclCode = ControllerInfoUtil.getControllerAcl(this.clazz);
40
- const hosts = ControllerInfoUtil.getControllerHosts(this.clazz);
41
- const metadata = new HTTPControllerMeta(clazzName, protoName, controllerName, httpPath, httpMiddlewares, methods, needAcl, aclCode, hosts);
42
- ControllerMetadataUtil.setControllerMetadata(this.clazz, metadata);
43
- for (const method of metadata.methods) {
44
- const realPath = metadata.getMethodRealPath(method);
45
- if (!realPath.startsWith('/')) {
46
- const desc = ClassUtil.classDescription(this.clazz);
47
- throw new Error(`class ${desc} method ${method.name} path ${realPath} not start with /`);
48
- }
49
- }
50
- return metadata;
51
- }
52
- static create(clazz) {
53
- return new HTTPControllerMetaBuilder(clazz);
54
- }
55
- }
56
- ControllerMetaBuilderFactory.registerControllerMetaBuilder(ControllerType.HTTP, HTTPControllerMetaBuilder.create);
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSFRUUENvbnRyb2xsZXJNZXRhQnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkhUVFBDb250cm9sbGVyTWV0YUJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxNQUFNLE1BQU0sYUFBYSxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRWpELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsa0JBQWtCLEVBQWtCLE1BQU0sc0JBQXNCLENBQUM7QUFDMUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLHNCQUFzQixFQUFFLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3BILE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRXZGLE1BQU0sT0FBTyx5QkFBeUI7SUFDbkIsS0FBSyxDQUFvQjtJQUUxQyxZQUFZLEtBQXdCO1FBQ2xDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLENBQUM7SUFFTyxXQUFXO1FBQ2pCLE1BQU0sV0FBVyxHQUFHLFdBQVcsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNwRSxNQUFNLE9BQU8sR0FBcUIsRUFBRSxDQUFDO1FBQ3JDLEtBQUssTUFBTSxVQUFVLElBQUksV0FBVyxFQUFFLENBQUM7WUFDckMsTUFBTSxPQUFPLEdBQUcsSUFBSSwrQkFBK0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1lBQzVFLE1BQU0sVUFB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
@@ -1,100 +0,0 @@
1
- import path from 'node:path';
2
- import { ClassUtil } from '@eggjs/tegg-metadata';
3
- import { HTTPMethodMeta, ParamMetaUtil } from '../../model/index.js';
4
- import { MethodValidator, HTTPInfoUtil, MethodInfoUtil, HTTPPriorityUtil } from '../../util/index.js';
5
- export class HTTPControllerMethodMetaBuilder {
6
- clazz;
7
- methodName;
8
- constructor(clazz, methodName) {
9
- this.clazz = clazz;
10
- this.methodName = methodName;
11
- }
12
- // 检查 HTTP 方法上参数是否都加上了注解
13
- // foo(a, b=233, c); foo.length = 2;
14
- // 由于这种情况的存在, 所以需要对 function 参数检查进行特殊处理
15
- // 如果有注解的参数比 function.length 长, 长度应该取有注解参数总数(包括 @Context)
16
- //
17
- // 但是有两种特殊情况无法处理
18
- // foo(@Context() ctx, @HTTPParam() id1, id2 = 233)
19
- // foo(@Context() ctx, @HTTPParam() id1, id2 = 233, id3)
20
- // 这两种情况均为默认值参数在
21
- checkParamDecorators() {
22
- const method = this.clazz.prototype[this.methodName];
23
- // 获取函数参数长度
24
- const functionLength = method.length;
25
- // 计算带注解参数
26
- const paramIndexList = HTTPInfoUtil.getParamIndexList(this.clazz, this.methodName);
27
- const contextIndex = MethodInfoUtil.getMethodContextIndex(this.clazz, this.methodName);
28
- const hasAnnotationParamCount = typeof contextIndex === 'undefined'
29
- ? paramIndexList.length
30
- : paramIndexList.length + 1;
31
- const maxParamCount = Math.max(functionLength, hasAnnotationParamCount);
32
- for (let i = 0; i < maxParamCount; ++i) {
33
- // 上下文参数, 跳过检查
34
- if (i === contextIndex) {
35
- continue;
36
- }
37
- const paramType = HTTPInfoUtil.getHTTPMethodParamType(i, this.clazz, this.methodName);
38
- if (!paramType) {
39
- const classDesc = ClassUtil.classDescription(this.clazz);
40
- throw new Error(`${classDesc}:${this.methodName} param ${i} has no http param type, Please add @HTTPBody, @HTTPParam, @HTTPQuery, @HTTPQueries`);
41
- }
42
- }
43
- }
44
- buildParamType(httpPath) {
45
- this.checkParamDecorators();
46
- const paramTypeMap = new Map();
47
- const paramIndexList = HTTPInfoUtil.getParamIndexList(this.clazz, this.methodName);
48
- for (const paramIndex of paramIndexList) {
49
- const paramType = HTTPInfoUtil.getHTTPMethodParamType(paramIndex, this.clazz, this.methodName);
50
- const paramName = HTTPInfoUtil.getHTTPMethodParamName(paramIndex, this.clazz, this.methodName);
51
- const paramMeta = ParamMetaUtil.createParam(paramType, paramName);
52
- try {
53
- paramMeta.validate(httpPath);
54
- }
55
- catch (e) {
56
- const classDesc = ClassUtil.classDescription(this.clazz);
57
- e.message = `build controller ${classDesc} method ${this.methodName} param ${paramName} failed: ${e.message}`;
58
- throw e;
59
- }
60
- paramTypeMap.set(paramIndex, paramMeta);
61
- }
62
- return paramTypeMap;
63
- }
64
- getPriority() {
65
- const priority = HTTPInfoUtil.getHTTPMethodPriority(this.clazz, this.methodName);
66
- if (priority !== undefined) {
67
- return priority;
68
- }
69
- const controllerPath = HTTPInfoUtil.getHTTPPath(this.clazz);
70
- const methodPath = HTTPInfoUtil.getHTTPMethodPath(this.clazz, this.methodName);
71
- const realPath = controllerPath ? path.posix.join(controllerPath, methodPath) : methodPath;
72
- const defaultPriority = HTTPPriorityUtil.calcPathPriority(realPath);
73
- if (defaultPriority > HTTPPriorityUtil.DEFAULT_PRIORITY) {
74
- throw new Error(`path ${realPath} is too long, should set priority manually`);
75
- }
76
- return defaultPriority;
77
- }
78
- build() {
79
- MethodValidator.validate(this.clazz, this.methodName);
80
- const controllerType = MethodInfoUtil.getMethodControllerType(this.clazz, this.methodName);
81
- if (!controllerType) {
82
- return undefined;
83
- }
84
- const httpMethod = HTTPInfoUtil.getHTTPMethodMethod(this.clazz, this.methodName);
85
- const parentPath = HTTPInfoUtil.getHTTPPath(this.clazz);
86
- const httpPath = HTTPInfoUtil.getHTTPMethodPath(this.clazz, this.methodName);
87
- const contextIndex = MethodInfoUtil.getMethodContextIndex(this.clazz, this.methodName);
88
- const middlewares = MethodInfoUtil.getMethodMiddlewares(this.clazz, this.methodName);
89
- const needAcl = MethodInfoUtil.hasMethodAcl(this.clazz, this.methodName);
90
- const aclCode = MethodInfoUtil.getMethodAcl(this.clazz, this.methodName);
91
- const hosts = MethodInfoUtil.getMethodHosts(this.clazz, this.methodName);
92
- const realPath = parentPath
93
- ? path.posix.join(parentPath, httpPath)
94
- : httpPath;
95
- const paramTypeMap = this.buildParamType(realPath);
96
- const priority = this.getPriority();
97
- return new HTTPMethodMeta(this.methodName, httpPath, httpMethod, middlewares, contextIndex, paramTypeMap, priority, needAcl, aclCode, hosts);
98
- }
99
- }
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSFRUUENvbnRyb2xsZXJNZXRob2RNZXRhQnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkhUVFBDb250cm9sbGVyTWV0aG9kTWV0YUJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxJQUFJLE1BQU0sV0FBVyxDQUFDO0FBQzdCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVqRCxPQUFPLEVBQUUsY0FBYyxFQUFhLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXRHLE1BQU0sT0FBTywrQkFBK0I7SUFDekIsS0FBSyxDQUFvQjtJQUN6QixVQUFVLENBQVM7SUFFcEMsWUFBWSxLQUF3QixFQUFFLFVBQWtCO1FBQ3RELElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO0lBQy9CLENBQUM7SUFFRCx3QkFBd0I7SUFDeEIsb0NBQW9DO0lBQ3BDLHVDQUF1QztJQUN2Qyx5REFBeUQ7SUFDekQsRUFBRTtJQUNGLGdCQUFnQjtJQUNoQixtREFBbUQ7SUFDbkQsd0RBQXdEO0lBQ3hELGdCQUFnQjtJQUNSLG9CQUFvQjtRQUMxQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFckQsV0FBVztRQUNYLE1BQU0sY0FBYyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7UUFFckMsVUFBVTtRQUNWLE1BQU0sY0FBYyxHQUFHLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNuRixNQUFNLFlBQVksR0FBRyxjQUFjLENBQUMscUJBQXFC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
@@ -1,2 +0,0 @@
1
- export * from './HTTPControllerMetaBuilder.js';
2
- export * from './HTTPControllerMethodMetaBuilder.js';
@@ -1,3 +0,0 @@
1
- export * from './HTTPControllerMetaBuilder.js';
2
- export * from './HTTPControllerMethodMetaBuilder.js';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsc0NBQXNDLENBQUMifQ==
@@ -1 +0,0 @@
1
- export * from './http/index.js';
package/src/impl/index.js DELETED
@@ -1,2 +0,0 @@
1
- export * from './http/index.js';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGlCQUFpQixDQUFDIn0=
package/src/index.d.ts DELETED
@@ -1,6 +0,0 @@
1
- export * from '@eggjs/tegg-types/controller-decorator';
2
- export * from './builder/index.js';
3
- export * from './decorator/index.js';
4
- export * from './impl/index.js';
5
- export * from './model/index.js';
6
- export * from './util/index.js';
package/src/index.js DELETED
@@ -1,7 +0,0 @@
1
- export * from '@eggjs/tegg-types/controller-decorator';
2
- export * from './builder/index.js';
3
- export * from './decorator/index.js';
4
- export * from './impl/index.js';
5
- export * from './model/index.js';
6
- export * from './util/index.js';
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxpQkFBaUIsQ0FBQyJ9