@eggjs/controller-decorator 4.0.0-beta.7 → 4.0.0-beta.9
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/dist/builder/ControllerMetaBuilderFactory.d.ts +6 -10
- package/dist/builder/ControllerMetaBuilderFactory.js +41 -37
- package/dist/builder/index.d.ts +1 -0
- package/dist/builder/index.js +2 -3
- package/dist/decorator/Acl.d.ts +1 -4
- package/dist/decorator/Acl.js +21 -23
- package/dist/decorator/Context.d.ts +1 -4
- package/dist/decorator/Context.js +10 -15
- package/dist/decorator/Middleware.d.ts +2 -6
- package/dist/decorator/Middleware.js +64 -52
- package/dist/decorator/http/HTTPController.d.ts +2 -6
- package/dist/decorator/http/HTTPController.js +28 -22
- package/dist/decorator/http/HTTPMethod.d.ts +2 -6
- package/dist/decorator/http/HTTPMethod.js +16 -20
- package/dist/decorator/http/HTTPParam.d.ts +8 -12
- package/dist/decorator/http/HTTPParam.js +68 -70
- package/dist/decorator/http/Host.d.ts +2 -6
- package/dist/decorator/http/Host.js +24 -26
- package/dist/decorator/http/index.d.ts +4 -0
- package/dist/decorator/http/index.js +5 -6
- package/dist/decorator/index.d.ts +4 -0
- package/dist/decorator/index.js +5 -10
- package/dist/impl/http/HTTPControllerMetaBuilder.d.ts +8 -12
- package/dist/impl/http/HTTPControllerMetaBuilder.js +55 -61
- package/dist/impl/http/HTTPControllerMethodMetaBuilder.d.ts +10 -14
- package/dist/impl/http/HTTPControllerMethodMetaBuilder.js +100 -80
- package/dist/impl/http/index.d.ts +2 -0
- package/dist/impl/http/index.js +3 -4
- package/dist/impl/index.d.ts +1 -0
- package/dist/impl/index.js +2 -5
- package/dist/index.d.ts +6 -24
- package/dist/index.js +7 -31
- package/dist/model/HTTPControllerMeta.d.ts +21 -24
- package/dist/model/HTTPControllerMeta.js +60 -53
- package/dist/model/HTTPCookies.d.ts +3 -6
- package/dist/model/HTTPCookies.js +4 -7
- package/dist/model/HTTPMethodMeta.d.ts +56 -59
- package/dist/model/HTTPMethodMeta.js +124 -102
- package/dist/model/HTTPRequest.d.ts +5 -6
- package/dist/model/HTTPRequest.js +3 -5
- package/dist/model/HTTPResponse.d.ts +10 -11
- package/dist/model/HTTPResponse.js +3 -5
- package/dist/model/index.d.ts +5 -0
- package/dist/model/index.js +6 -7
- package/dist/util/ControllerInfoUtil.d.ts +16 -19
- package/dist/util/ControllerInfoUtil.js +46 -48
- package/dist/util/ControllerMetadataUtil.d.ts +4 -8
- package/dist/util/ControllerMetadataUtil.js +20 -21
- package/dist/util/HTTPInfoUtil.d.ts +15 -19
- package/dist/util/HTTPInfoUtil.js +64 -53
- package/dist/util/HTTPPriorityUtil.d.ts +18 -21
- package/dist/util/HTTPPriorityUtil.js +42 -38
- package/dist/util/MethodInfoUtil.d.ts +19 -22
- package/dist/util/MethodInfoUtil.js +72 -62
- package/dist/util/index.d.ts +6 -0
- package/dist/util/index.js +7 -10
- package/dist/util/validator/ControllerValidator.d.ts +3 -7
- package/dist/util/validator/ControllerValidator.js +14 -15
- package/dist/util/validator/MethodValidator.d.ts +3 -7
- package/dist/util/validator/MethodValidator.js +30 -30
- package/dist/util/validator/index.d.ts +2 -0
- package/dist/util/validator/index.js +3 -4
- package/package.json +7 -7
|
@@ -1,77 +1,75 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
function HTTPBody() {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
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.equal(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
15
|
}
|
|
16
|
-
function HTTPHeaders() {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
16
|
+
export function HTTPHeaders() {
|
|
17
|
+
return function (target, propertyKey, parameterIndex) {
|
|
18
|
+
assert.equal(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
23
|
}
|
|
24
|
-
function HTTPQuery(param) {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
24
|
+
export function HTTPQuery(param) {
|
|
25
|
+
return function (target, propertyKey, parameterIndex) {
|
|
26
|
+
assert.equal(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
34
|
}
|
|
35
|
-
function HTTPQueries(param) {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
35
|
+
export function HTTPQueries(param) {
|
|
36
|
+
return function (target, propertyKey, parameterIndex) {
|
|
37
|
+
assert.equal(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
45
|
}
|
|
46
|
-
function HTTPParam(param) {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
46
|
+
export function HTTPParam(param) {
|
|
47
|
+
return function (target, propertyKey, parameterIndex) {
|
|
48
|
+
assert.equal(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
56
|
}
|
|
57
|
-
function Request() {
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
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.equal(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
66
|
}
|
|
67
|
-
function Cookies() {
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
67
|
+
export function Cookies() {
|
|
68
|
+
return function (target, propertyKey, parameterIndex) {
|
|
69
|
+
assert.equal(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
74
|
}
|
|
75
|
-
|
|
76
|
-
//#endregion
|
|
77
|
-
export { Cookies, HTTPBody, HTTPHeaders, HTTPParam, HTTPQueries, HTTPQuery, Request };
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSFRUUFBhcmFtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2RlY29yYXRvci9odHRwL0hUVFBQYXJhbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLE1BQU0sTUFBTSxhQUFhLENBQUM7QUFFakMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRWxELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV0RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFbkQsa0JBQWtCO0FBQ2xCLFdBQVc7QUFDWCwwQ0FBMEM7QUFFMUMsTUFBTSxVQUFVLFFBQVE7SUFDdEIsT0FBTyxVQUFTLE1BQVcsRUFBRSxXQUF3QixFQUFFLGNBQXNCO1FBQzNFLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxXQUFXLEVBQUUsUUFBUSxFQUN2QyxlQUFlLE1BQU0sQ0FBQyxJQUFJLHFEQUFxRCxNQUFNLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3hHLE1BQU0sVUFBVSxHQUFHLFdBQXFCLENBQUM7UUFDekMsTUFBTSxlQUFlLEdBQUcsTUFBTSxDQUFDLFdBQWdDLENBQUM7UUFDaEUsWUFBWSxDQUFDLHNCQUFzQixDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsY0FBYyxFQUFFLGVBQWUsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUN2RyxDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLFdBQVc7SUFDekIsT0FBTyxVQUFTLE1BQVcsRUFBRSxXQUF3QixFQUFFLGNBQXNCO1FBQzNFLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxXQUFXLEVBQUUsUUFBUSxFQUN2QyxlQUFlLE1BQU0sQ0FBQyxJQUFJLHFEQUFxRCxNQUFNLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3hHLE1BQU0sVUFBVSxHQUFHLFdBQXFCLENBQUM7UUFDekMs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
|
|
@@ -1,6 +1,2 @@
|
|
|
1
|
-
import { HostType } from
|
|
2
|
-
|
|
3
|
-
//#region src/decorator/http/Host.d.ts
|
|
4
|
-
declare function Host(host: HostType): (target: any, propertyKey?: PropertyKey) => void;
|
|
5
|
-
//#endregion
|
|
6
|
-
export { Host };
|
|
1
|
+
import type { HostType } from '@eggjs/tegg-types';
|
|
2
|
+
export declare function Host(host: HostType): (target: any, propertyKey?: PropertyKey) => void;
|
|
@@ -1,27 +1,25 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { MethodInfoUtil } from "../../util/
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
function
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
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
24
|
}
|
|
25
|
-
|
|
26
|
-
//#endregion
|
|
27
|
-
export { Host };
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSG9zdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kZWNvcmF0b3IvaHR0cC9Ib3N0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sTUFBTSxNQUFNLGFBQWEsQ0FBQztBQUlqQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFekUsTUFBTSxVQUFVLElBQUksQ0FBQyxJQUFjO0lBRWpDLFNBQVMsU0FBUztRQUNoQixPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBRSxJQUFJLENBQUUsQ0FBQztJQUMvQyxDQUFDO0lBRUQsU0FBUyxTQUFTLENBQUMsV0FBOEI7UUFDL0Msa0JBQWtCLENBQUMsa0JBQWtCLENBQUMsU0FBUyxFQUFFLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVELFNBQVMsVUFBVSxDQUFDLE1BQVcsRUFBRSxXQUF3QjtRQUN2RCxNQUFNLENBQUMsT0FBTyxXQUFXLEtBQUssUUFBUSxFQUNwQyxlQUFlLE1BQU0sQ0FBQyxJQUFJLHFEQUFxRCxNQUFNLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3hHLE1BQU0sZUFBZSxHQUFHLE1BQU0sQ0FBQyxXQUFnQyxDQUFDO1FBQ2hFLE1BQU0sVUFBVSxHQUFHLFdBQXFCLENBQUM7UUFDekMsY0FBYyxDQUFDLGNBQWMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxlQUFlLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVELE9BQU8sVUFBUyxNQUFXLEVBQUUsV0FBeUI7UUFDcEQsSUFBSSxXQUFXLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDOUIsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3BCLENBQUM7YUFBTSxDQUFDO1lBQ04sVUFBVSxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQztRQUNsQyxDQUFDO0lBQ0gsQ0FBQyxDQUFDO0FBQ0osQ0FBQyJ9
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
export { };
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZGVjb3JhdG9yL2h0dHAvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsZ0JBQWdCLENBQUMifQ==
|
package/dist/decorator/index.js
CHANGED
|
@@ -1,10 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
import { Acl } from "./Acl.js";
|
|
7
|
-
import { Context } from "./Context.js";
|
|
8
|
-
import { Middleware } from "./Middleware.js";
|
|
9
|
-
|
|
10
|
-
export { };
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGVjb3JhdG9yL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxpQkFBaUIsQ0FBQyJ9
|
|
@@ -1,13 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
build(): HTTPControllerMeta;
|
|
10
|
-
static create(clazz: EggProtoImplClass): HTTPControllerMetaBuilder;
|
|
1
|
+
import type { EggProtoImplClass } from '@eggjs/tegg-types';
|
|
2
|
+
import { HTTPControllerMeta } from '../../model/index.ts';
|
|
3
|
+
export declare class HTTPControllerMetaBuilder {
|
|
4
|
+
private readonly clazz;
|
|
5
|
+
constructor(clazz: EggProtoImplClass);
|
|
6
|
+
private buildMethod;
|
|
7
|
+
build(): HTTPControllerMeta;
|
|
8
|
+
static create(clazz: EggProtoImplClass): HTTPControllerMetaBuilder;
|
|
11
9
|
}
|
|
12
|
-
//#endregion
|
|
13
|
-
export { HTTPControllerMetaBuilder };
|
|
@@ -1,63 +1,57 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import
|
|
6
|
-
import { ControllerMetaBuilderFactory } from "../../builder/
|
|
7
|
-
import "../../
|
|
8
|
-
import {
|
|
9
|
-
import "../../model/index.js";
|
|
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, HTTPMethodMeta } from "../../model/index.js";
|
|
8
|
+
import { ControllerInfoUtil, ControllerMetadataUtil, HTTPInfoUtil, ControllerValidator } from "../../util/index.js";
|
|
10
9
|
import { HTTPControllerMethodMetaBuilder } from "./HTTPControllerMethodMetaBuilder.js";
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
return new HTTPControllerMetaBuilder(clazz);
|
|
58
|
-
}
|
|
59
|
-
};
|
|
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.equal(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
|
+
}
|
|
60
56
|
ControllerMetaBuilderFactory.registerControllerMetaBuilder(ControllerType.HTTP, HTTPControllerMetaBuilder.create);
|
|
61
|
-
|
|
62
|
-
//#endregion
|
|
63
|
-
export { HTTPControllerMetaBuilder };
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSFRUUENvbnRyb2xsZXJNZXRhQnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbXBsL2h0dHAvSFRUUENvbnRyb2xsZXJNZXRhQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLE1BQU0sTUFBTSxhQUFhLENBQUM7QUFFakMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFakQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRW5ELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsc0JBQXNCLEVBQUUsWUFBWSxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDcEgsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFFdkYsTUFBTSxPQUFPLHlCQUF5QjtJQUNuQixLQUFLLENBQW9CO0lBRTFDLFlBQVksS0FBd0I7UUFDbEMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDckIsQ0FBQztJQUVPLFdBQVc7UUFDakIsTUFBTSxXQUFXLEdBQUcsV0FBVyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3BFLE1BQU0sT0FBTyxHQUFxQixFQUFFLENBQUM7UUFDckMsS0FBSyxNQUFNLFVBQVUsSUFBSSxXQUFXLEVBQUUsQ0FBQztZQUNyQyxNQUFNLE9BQU8sR0FBRyxJQUFJLCtCQUErQixDQUFDLElBQUksQ0FBQyxLQUFLLEVB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
|
|
@@ -1,15 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
getPriority(): number;
|
|
12
|
-
build(): HTTPMethodMeta | undefined;
|
|
1
|
+
import type { EggProtoImplClass } from '@eggjs/tegg-types';
|
|
2
|
+
import { HTTPMethodMeta } from '../../model/index.ts';
|
|
3
|
+
export declare class HTTPControllerMethodMetaBuilder {
|
|
4
|
+
private readonly clazz;
|
|
5
|
+
private readonly methodName;
|
|
6
|
+
constructor(clazz: EggProtoImplClass, methodName: string);
|
|
7
|
+
private checkParamDecorators;
|
|
8
|
+
private buildParamType;
|
|
9
|
+
getPriority(): number;
|
|
10
|
+
build(): HTTPMethodMeta | undefined;
|
|
13
11
|
}
|
|
14
|
-
//#endregion
|
|
15
|
-
export { HTTPControllerMethodMetaBuilder };
|