@eggjs/controller-decorator 4.0.0-beta.3 → 4.0.0-beta.30
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 +13 -1
- package/dist/builder/ControllerMetaBuilderFactory.js +41 -0
- package/dist/builder/index.d.ts +1 -0
- package/dist/builder/index.js +2 -0
- package/dist/decorator/Acl.js +22 -0
- package/dist/decorator/Context.d.ts +1 -0
- package/dist/decorator/Context.js +11 -0
- package/dist/decorator/Middleware.js +68 -0
- package/{src → dist}/decorator/http/HTTPController.js +2 -2
- package/dist/decorator/http/HTTPMethod.js +17 -0
- package/dist/decorator/http/HTTPParam.d.ts +173 -0
- package/dist/decorator/http/HTTPParam.js +241 -0
- package/dist/decorator/http/Host.js +25 -0
- package/dist/decorator/http/index.d.ts +4 -0
- package/dist/decorator/http/index.js +5 -0
- package/dist/decorator/index.d.ts +4 -0
- package/dist/decorator/index.js +5 -0
- package/{src → dist}/impl/http/HTTPControllerMetaBuilder.d.ts +1 -1
- package/dist/impl/http/HTTPControllerMetaBuilder.js +57 -0
- package/{src → dist}/impl/http/HTTPControllerMethodMetaBuilder.d.ts +1 -1
- package/dist/impl/http/HTTPControllerMethodMetaBuilder.js +96 -0
- package/dist/impl/http/index.d.ts +2 -0
- package/dist/impl/http/index.js +3 -0
- package/dist/impl/index.d.ts +1 -0
- package/dist/impl/index.js +2 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.js +7 -0
- package/{src → dist}/model/HTTPControllerMeta.d.ts +2 -2
- package/dist/model/HTTPControllerMeta.js +57 -0
- package/dist/model/HTTPCookies.d.ts +1 -0
- package/dist/model/HTTPCookies.js +2 -0
- package/{src → dist}/model/HTTPMethodMeta.d.ts +1 -1
- package/dist/model/HTTPMethodMeta.js +124 -0
- package/dist/model/index.d.ts +3 -0
- package/dist/model/index.js +4 -0
- package/{src → dist}/util/ControllerInfoUtil.d.ts +1 -1
- package/dist/util/ControllerInfoUtil.js +46 -0
- package/dist/util/ControllerMetadataUtil.js +20 -0
- package/dist/util/HTTPInfoUtil.js +64 -0
- package/{src → dist}/util/HTTPPriorityUtil.d.ts +2 -1
- package/{src → dist}/util/HTTPPriorityUtil.js +4 -3
- package/{src → dist}/util/MethodInfoUtil.d.ts +1 -1
- package/dist/util/MethodInfoUtil.js +72 -0
- package/dist/util/index.d.ts +6 -0
- package/dist/util/index.js +7 -0
- package/dist/util/validator/ControllerValidator.js +15 -0
- package/dist/util/validator/MethodValidator.js +31 -0
- package/dist/util/validator/index.d.ts +2 -0
- package/dist/util/validator/index.js +3 -0
- package/package.json +29 -31
- package/src/builder/ControllerMetaBuilderFactory.js +0 -41
- package/src/builder/index.d.ts +0 -1
- package/src/builder/index.js +0 -2
- package/src/decorator/Acl.js +0 -22
- package/src/decorator/Context.d.ts +0 -1
- package/src/decorator/Context.js +0 -11
- package/src/decorator/Middleware.js +0 -69
- package/src/decorator/http/HTTPMethod.js +0 -17
- package/src/decorator/http/HTTPParam.d.ts +0 -8
- package/src/decorator/http/HTTPParam.js +0 -75
- package/src/decorator/http/Host.js +0 -25
- package/src/decorator/http/index.d.ts +0 -4
- package/src/decorator/http/index.js +0 -5
- package/src/decorator/index.d.ts +0 -4
- package/src/decorator/index.js +0 -5
- package/src/impl/http/HTTPControllerMetaBuilder.js +0 -57
- package/src/impl/http/HTTPControllerMethodMetaBuilder.js +0 -100
- package/src/impl/http/index.d.ts +0 -2
- package/src/impl/http/index.js +0 -3
- package/src/impl/index.d.ts +0 -1
- package/src/impl/index.js +0 -2
- package/src/index.d.ts +0 -6
- package/src/index.js +0 -7
- package/src/model/HTTPControllerMeta.js +0 -59
- package/src/model/HTTPCookies.d.ts +0 -3
- package/src/model/HTTPCookies.js +0 -4
- package/src/model/HTTPMethodMeta.js +0 -124
- package/src/model/HTTPRequest.d.ts +0 -7
- package/src/model/HTTPRequest.js +0 -3
- package/src/model/HTTPResponse.d.ts +0 -10
- package/src/model/HTTPResponse.js +0 -3
- package/src/model/index.d.ts +0 -5
- package/src/model/index.js +0 -6
- package/src/util/ControllerInfoUtil.js +0 -46
- package/src/util/ControllerMetadataUtil.js +0 -20
- package/src/util/HTTPInfoUtil.js +0 -64
- package/src/util/MethodInfoUtil.js +0 -72
- package/src/util/index.d.ts +0 -6
- package/src/util/index.js +0 -7
- package/src/util/validator/ControllerValidator.js +0 -15
- package/src/util/validator/MethodValidator.js +0 -31
- package/src/util/validator/index.d.ts +0 -2
- package/src/util/validator/index.js +0 -3
- /package/{src → dist}/builder/ControllerMetaBuilderFactory.d.ts +0 -0
- /package/{src → dist}/decorator/Acl.d.ts +0 -0
- /package/{src → dist}/decorator/Middleware.d.ts +0 -0
- /package/{src → dist}/decorator/http/HTTPController.d.ts +0 -0
- /package/{src → dist}/decorator/http/HTTPMethod.d.ts +0 -0
- /package/{src → dist}/decorator/http/Host.d.ts +0 -0
- /package/{src → dist}/util/ControllerMetadataUtil.d.ts +0 -0
- /package/{src → dist}/util/HTTPInfoUtil.d.ts +0 -0
- /package/{src → dist}/util/validator/ControllerValidator.d.ts +0 -0
- /package/{src → dist}/util/validator/MethodValidator.d.ts +0 -0
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { MetadataUtil } from '@eggjs/core-decorator';
|
|
2
|
+
import { CONTROLLER_HTTP_PATH, CONTROLLER_METHOD_METHOD_MAP, CONTROLLER_METHOD_PARAM_NAME_MAP, CONTROLLER_METHOD_PARAM_TYPE_MAP, CONTROLLER_METHOD_PATH_MAP, CONTROLLER_METHOD_PRIORITY, } from '@eggjs/tegg-types';
|
|
3
|
+
import { MapUtil } from '@eggjs/tegg-common-util';
|
|
4
|
+
export class HTTPInfoUtil {
|
|
5
|
+
static setHTTPPath(path, clazz) {
|
|
6
|
+
MetadataUtil.defineMetaData(CONTROLLER_HTTP_PATH, path, clazz);
|
|
7
|
+
}
|
|
8
|
+
static getHTTPPath(clazz) {
|
|
9
|
+
return MetadataUtil.getMetaData(CONTROLLER_HTTP_PATH, clazz);
|
|
10
|
+
}
|
|
11
|
+
static setHTTPMethodPath(path, clazz, methodName) {
|
|
12
|
+
const methodPathMap = MetadataUtil.initOwnMapMetaData(CONTROLLER_METHOD_PATH_MAP, clazz, new Map());
|
|
13
|
+
methodPathMap.set(methodName, path);
|
|
14
|
+
}
|
|
15
|
+
static getHTTPMethodPath(clazz, methodName) {
|
|
16
|
+
const methodPathMap = MetadataUtil.getMetaData(CONTROLLER_METHOD_PATH_MAP, clazz);
|
|
17
|
+
return methodPathMap?.get(methodName);
|
|
18
|
+
}
|
|
19
|
+
static setHTTPMethodMethod(method, clazz, methodName) {
|
|
20
|
+
const methodMap = MetadataUtil.initOwnMapMetaData(CONTROLLER_METHOD_METHOD_MAP, clazz, new Map());
|
|
21
|
+
methodMap.set(methodName, method);
|
|
22
|
+
}
|
|
23
|
+
static getHTTPMethodMethod(clazz, methodName) {
|
|
24
|
+
const methodMap = MetadataUtil.getMetaData(CONTROLLER_METHOD_METHOD_MAP, clazz);
|
|
25
|
+
return methodMap?.get(methodName);
|
|
26
|
+
}
|
|
27
|
+
static setHTTPMethodParamType(paramType, parameterIndex, clazz, methodName) {
|
|
28
|
+
const methodParamMap = MetadataUtil.initOwnMapMetaData(CONTROLLER_METHOD_PARAM_TYPE_MAP, clazz, new Map());
|
|
29
|
+
const paramMap = MapUtil.getOrStore(methodParamMap, methodName, new Map());
|
|
30
|
+
paramMap.set(parameterIndex, paramType);
|
|
31
|
+
}
|
|
32
|
+
static getParamIndexList(clazz, methodName) {
|
|
33
|
+
const methodParamMap = MetadataUtil.getMetaData(CONTROLLER_METHOD_PARAM_TYPE_MAP, clazz);
|
|
34
|
+
const paramMap = methodParamMap?.get(methodName);
|
|
35
|
+
if (!paramMap) {
|
|
36
|
+
return [];
|
|
37
|
+
}
|
|
38
|
+
return Array.from(paramMap.keys());
|
|
39
|
+
}
|
|
40
|
+
static getHTTPMethodParamType(parameterIndex, clazz, methodName) {
|
|
41
|
+
const methodParamMap = MetadataUtil.getMetaData(CONTROLLER_METHOD_PARAM_TYPE_MAP, clazz);
|
|
42
|
+
const paramMap = methodParamMap?.get(methodName);
|
|
43
|
+
return paramMap?.get(parameterIndex);
|
|
44
|
+
}
|
|
45
|
+
static setHTTPMethodParamName(paramName, parameterIndex, clazz, methodName) {
|
|
46
|
+
const methodParamNameMap = MetadataUtil.initOwnMapMetaData(CONTROLLER_METHOD_PARAM_NAME_MAP, clazz, new Map());
|
|
47
|
+
const paramMap = MapUtil.getOrStore(methodParamNameMap, methodName, new Map());
|
|
48
|
+
paramMap.set(parameterIndex, paramName);
|
|
49
|
+
}
|
|
50
|
+
static getHTTPMethodParamName(parameterIndex, clazz, methodName) {
|
|
51
|
+
const methodParamNameMap = MetadataUtil.getMetaData(CONTROLLER_METHOD_PARAM_NAME_MAP, clazz);
|
|
52
|
+
const paramMap = methodParamNameMap?.get(methodName);
|
|
53
|
+
return paramMap?.get(parameterIndex);
|
|
54
|
+
}
|
|
55
|
+
static getHTTPMethodPriority(clazz, methodName) {
|
|
56
|
+
const methodPriorityMap = MetadataUtil.getMetaData(CONTROLLER_METHOD_PRIORITY, clazz);
|
|
57
|
+
return methodPriorityMap?.get(methodName);
|
|
58
|
+
}
|
|
59
|
+
static setHTTPMethodPriority(priority, clazz, methodName) {
|
|
60
|
+
const methodPriorityMap = MetadataUtil.initOwnMapMetaData(CONTROLLER_METHOD_PRIORITY, clazz, new Map());
|
|
61
|
+
methodPriorityMap.set(methodName, priority);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSFRUUEluZm9VdGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWwvSFRUUEluZm9VdGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLDRCQUE0QixFQUM1QixnQ0FBZ0MsRUFDaEMsZ0NBQWdDLEVBQ2hDLDBCQUEwQixFQUMxQiwwQkFBMEIsR0FDM0IsTUFBTSxtQkFBbUIsQ0FBQztBQUUzQixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFRbEQsTUFBTSxPQUFPLFlBQVk7SUFDdkIsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFZLEVBQUUsS0FBd0I7UUFDdkQsWUFBWSxDQUFDLGNBQWMsQ0FBQyxvQkFBb0IsRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVELE1BQU0sQ0FBQyxXQUFXLENBQUMsS0FBd0I7UUFDekMsT0FBTyxZQUFZLENBQUMsV0FBVyxDQUFDLG9CQUFvQixFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRCxNQUFNLENBQUMsaUJBQWlCLENBQUMsSUFBWSxFQUFFLEtBQXdCLEVBQUUsVUFBa0I7UUFDakYsTUFBTSxhQUFhLEdBQUcsWUFBWSxDQUFDLGtCQUFrQixDQUFDLDBCQUEwQixFQUFFLEtBQUssRUFBRSxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDcEcsYUFBYSxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxLQUF3QixFQUFFLFVBQWtCO1FBQ25FLE1BQU0sYUFBYSxHQUFrQyxZQUFZLENBQUMsV0FBVyxDQUFDLDBCQUEwQixFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ2pILE9BQU8sYUFBYSxFQUFFLEdBQUcs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
|
|
@@ -13,7 +13,8 @@ export declare class HTTPPriorityUtil {
|
|
|
13
13
|
* priority = hasRegExp
|
|
14
14
|
* : regexpIndex.reduce((p,c) => p + c * 1000, 0)
|
|
15
15
|
* : 100000;
|
|
16
|
-
* @param {string} path -
|
|
16
|
+
* @param {string} path - path to calculate priority
|
|
17
|
+
* @returns {number} priority
|
|
17
18
|
*/
|
|
18
19
|
static calcPathPriority(path: string): number;
|
|
19
20
|
}
|
|
@@ -14,7 +14,8 @@ export class HTTPPriorityUtil {
|
|
|
14
14
|
* priority = hasRegExp
|
|
15
15
|
* : regexpIndex.reduce((p,c) => p + c * 1000, 0)
|
|
16
16
|
* : 100000;
|
|
17
|
-
* @param {string} path -
|
|
17
|
+
* @param {string} path - path to calculate priority
|
|
18
|
+
* @returns {number} priority
|
|
18
19
|
*/
|
|
19
20
|
static calcPathPriority(path) {
|
|
20
21
|
const tokens = parse(path);
|
|
@@ -26,7 +27,7 @@ export class HTTPPriorityUtil {
|
|
|
26
27
|
if (typeof token === 'string') {
|
|
27
28
|
// /view/users/*
|
|
28
29
|
// token is [ '/view/users', '*' ]
|
|
29
|
-
index +=
|
|
30
|
+
index += token.split('/').length - 1;
|
|
30
31
|
}
|
|
31
32
|
else {
|
|
32
33
|
hasRegExp = true;
|
|
@@ -39,4 +40,4 @@ export class HTTPPriorityUtil {
|
|
|
39
40
|
return priority;
|
|
40
41
|
}
|
|
41
42
|
}
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSFRUUFByaW9yaXR5VXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsL0hUVFBQcmlvcml0eVV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXZDLE1BQU0sT0FBTyxnQkFBZ0I7SUFDM0IsTUFBTSxDQUFVLGdCQUFnQixHQUFHLE1BQU0sQ0FBQztJQUNsQyxNQUFNLENBQVUsY0FBYyxHQUFHLElBQUksQ0FBQztJQUU5Qzs7Ozs7Ozs7Ozs7Ozs7T0FjRztJQUNILE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFZO1FBQ2xDLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMzQixJQUFJLFFBQVEsR0FBRyxDQUFDLENBQUM7UUFDakIsSUFBSSxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQztRQUNkLElBQUksS0FBSyxDQUFDO1FBQ1YsT0FBTyxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQ2hDLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQzlCLGdCQUFnQjtnQkFDaEIsa0NBQWtDO2dCQUNsQyxLQUFLLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBQ3ZDLENBQUM7aUJBQU0sQ0FBQztnQkFDTixTQUFTLEdBQUcsSUFBSSxDQUFDO2dCQUNqQixRQUFRLElBQUksS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztZQUM1QyxDQUFDO1FBQ0gsQ0FBQztRQUNELElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNmLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDO1FBQy9CLENBQUM7UUFDRCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDIn0=
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { IAdvice } from '@eggjs/tegg-types';
|
|
1
|
+
import { type IAdvice } from '@eggjs/tegg-types';
|
|
2
2
|
import type { ControllerTypeLike, EggProtoImplClass, MiddlewareFunc } from '@eggjs/tegg-types';
|
|
3
3
|
export declare class MethodInfoUtil {
|
|
4
4
|
static setMethodControllerType(clazz: EggProtoImplClass, methodName: string, controllerType: ControllerTypeLike): void;
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { MetadataUtil } from '@eggjs/core-decorator';
|
|
2
|
+
import { MapUtil } from '@eggjs/tegg-common-util';
|
|
3
|
+
import { METHOD_ACL, METHOD_AOP_MIDDLEWARES, METHOD_AOP_REGISTER_MAP, METHOD_CONTEXT_INDEX, METHOD_CONTROLLER_HOST, METHOD_CONTROLLER_TYPE_MAP, METHOD_MIDDLEWARES, } from '@eggjs/tegg-types';
|
|
4
|
+
export class MethodInfoUtil {
|
|
5
|
+
static setMethodControllerType(clazz, methodName, controllerType) {
|
|
6
|
+
const methodControllerMap = MetadataUtil.initOwnMapMetaData(METHOD_CONTROLLER_TYPE_MAP, clazz, new Map());
|
|
7
|
+
methodControllerMap.set(methodName, controllerType);
|
|
8
|
+
}
|
|
9
|
+
static getMethodControllerType(clazz, methodName) {
|
|
10
|
+
const methodControllerMap = MetadataUtil.getMetaData(METHOD_CONTROLLER_TYPE_MAP, clazz);
|
|
11
|
+
return methodControllerMap?.get(methodName);
|
|
12
|
+
}
|
|
13
|
+
static setMethodContextIndexInArgs(index, clazz, methodName) {
|
|
14
|
+
const methodContextIndexMap = MetadataUtil.initOwnMapMetaData(METHOD_CONTEXT_INDEX, clazz, new Map());
|
|
15
|
+
methodContextIndexMap.set(methodName, index);
|
|
16
|
+
}
|
|
17
|
+
static getMethodContextIndex(clazz, methodName) {
|
|
18
|
+
const methodContextIndexMap = MetadataUtil.getMetaData(METHOD_CONTEXT_INDEX, clazz);
|
|
19
|
+
return methodContextIndexMap?.get(methodName);
|
|
20
|
+
}
|
|
21
|
+
static addMethodMiddleware(middleware, clazz, methodName) {
|
|
22
|
+
const methodMiddlewareMap = MetadataUtil.initOwnMapMetaData(METHOD_MIDDLEWARES, clazz, new Map());
|
|
23
|
+
const methodMiddlewares = MapUtil.getOrStore(methodMiddlewareMap, methodName, []);
|
|
24
|
+
methodMiddlewares.push(middleware);
|
|
25
|
+
}
|
|
26
|
+
static getMethodMiddlewares(clazz, methodName) {
|
|
27
|
+
const methodMiddlewareMap = MetadataUtil.getMetaData(METHOD_MIDDLEWARES, clazz);
|
|
28
|
+
return methodMiddlewareMap?.get(methodName) || [];
|
|
29
|
+
}
|
|
30
|
+
static addMethodAopMiddleware(middleware, clazz, methodName) {
|
|
31
|
+
const methodMiddlewareMap = MetadataUtil.initOwnMapMetaData(METHOD_AOP_MIDDLEWARES, clazz, new Map());
|
|
32
|
+
const methodMiddlewares = MapUtil.getOrStore(methodMiddlewareMap, methodName, []);
|
|
33
|
+
methodMiddlewares.push(middleware);
|
|
34
|
+
}
|
|
35
|
+
static getMethodAopMiddlewares(clazz, methodName) {
|
|
36
|
+
const methodMiddlewareMap = MetadataUtil.getMetaData(METHOD_AOP_MIDDLEWARES, clazz);
|
|
37
|
+
return methodMiddlewareMap?.get(methodName) || [];
|
|
38
|
+
}
|
|
39
|
+
static setMethodAcl(code, clazz, methodName) {
|
|
40
|
+
const methodAclMap = MetadataUtil.initOwnMapMetaData(METHOD_ACL, clazz, new Map());
|
|
41
|
+
methodAclMap.set(methodName, code);
|
|
42
|
+
}
|
|
43
|
+
static hasMethodAcl(clazz, methodName) {
|
|
44
|
+
const methodAclMap = MetadataUtil.getMetaData(METHOD_ACL, clazz);
|
|
45
|
+
return !!methodAclMap?.has(methodName);
|
|
46
|
+
}
|
|
47
|
+
static getMethodAcl(clazz, methodName) {
|
|
48
|
+
const methodAclMap = MetadataUtil.getMetaData(METHOD_ACL, clazz);
|
|
49
|
+
return methodAclMap?.get(methodName);
|
|
50
|
+
}
|
|
51
|
+
static setMethodHosts(hosts, clazz, methodName) {
|
|
52
|
+
const methodControllerMap = MetadataUtil.initOwnMapMetaData(METHOD_CONTROLLER_HOST, clazz, new Map());
|
|
53
|
+
methodControllerMap.set(methodName, hosts);
|
|
54
|
+
}
|
|
55
|
+
static getMethodHosts(clazz, methodName) {
|
|
56
|
+
const methodControllerMap = MetadataUtil.getMetaData(METHOD_CONTROLLER_HOST, clazz);
|
|
57
|
+
return methodControllerMap?.get(methodName);
|
|
58
|
+
}
|
|
59
|
+
static getMethods(clazz) {
|
|
60
|
+
const methodControllerMap = MetadataUtil.getMetaData(METHOD_CONTROLLER_TYPE_MAP, clazz);
|
|
61
|
+
return Array.from(methodControllerMap?.keys() || []);
|
|
62
|
+
}
|
|
63
|
+
static shouldRegisterAopMiddlewarePointCut(clazz, methodName) {
|
|
64
|
+
const methodControllerMap = MetadataUtil.getMetaData(METHOD_AOP_REGISTER_MAP, clazz);
|
|
65
|
+
return !(methodControllerMap && methodControllerMap.get(methodName));
|
|
66
|
+
}
|
|
67
|
+
static registerAopMiddlewarePointcut(clazz, methodName) {
|
|
68
|
+
const methodControllerMap = MetadataUtil.initOwnMapMetaData(METHOD_AOP_REGISTER_MAP, clazz, new Map());
|
|
69
|
+
methodControllerMap.set(methodName, true);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWV0aG9kSW5mb1V0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbC9NZXRob2RJbmZvVXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2xELE9BQU8sRUFFTCxVQUFVLEVBQ1Ysc0JBQXNCLEVBQ3RCLHVCQUF1QixFQUN2QixvQkFBb0IsRUFDcEIsc0JBQXNCLEVBQ3RCLDBCQUEwQixFQUMxQixrQkFBa0IsR0FDbkIsTUFBTSxtQkFBbUIsQ0FBQztBQVUzQixNQUFNLE9BQU8sY0FBYztJQUN6QixNQUFNLENBQUMsdUJBQXVCLENBQzVCLEtBQXdCLEVBQ3hCLFVBQWtCLEVBQ2xCLGNBQWtDO1FBRWxDLE1BQU0sbUJBQW1CLEdBQWUsWUFBWSxDQUFDLGtCQUFrQixDQUNyRSwwQkFBMEIsRUFDMUIsS0FBSyxFQUNMLElBQUksR0FBRyxFQUFFLENBQ1YsQ0FBQztRQUNGLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxLQUF3QixFQUFFLFVBQWtCO1FBQ3pFLE1BQU0sbUJBQW1CLEdBQTJCLFlBQVksQ0FBQyxXQUFXLENBQUMsMEJBQTBCLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDaEgsT0FBTyxtQkFBbUIsRUFBRSxHQUFHLENBQUMsVUFBVSxDQUFtQyxDQUFDO0lBQ2hGLENBQUM7SUFFRCxNQUFNLENBQUMsMkJBQTJCLENBQUMsS0FBYSxFQUFFLEtBQXdCLEVBQUUsVUFBa0I7UUFDNUYsTUFBTSxxQkFBcUIsR0FBMEIsWUFBWSxDQUFDLGtCQUFrQixDQUNsRixvQkFBb0IsRUFDcEIsS0FBSyxFQUNMLElBQUksR0FBRyxFQUFFLENBQ1YsQ0FBQztRQUNGLHFC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
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export * from "./validator/index.js";
|
|
2
|
+
export * from "./ControllerInfoUtil.js";
|
|
3
|
+
export * from "./ControllerMetadataUtil.js";
|
|
4
|
+
export * from "./HTTPInfoUtil.js";
|
|
5
|
+
export * from "./HTTPPriorityUtil.js";
|
|
6
|
+
export * from "./MethodInfoUtil.js";
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxxQkFBcUIsQ0FBQyJ9
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ClassUtil } from '@eggjs/metadata';
|
|
2
|
+
import { ControllerInfoUtil } from "../ControllerInfoUtil.js";
|
|
3
|
+
export class ControllerValidator {
|
|
4
|
+
// should throw error
|
|
5
|
+
// 1. use controller middleware but not has controller decorator
|
|
6
|
+
static validate(clazz) {
|
|
7
|
+
const controllerType = ControllerInfoUtil.getControllerType(clazz);
|
|
8
|
+
const middlewares = ControllerInfoUtil.getControllerMiddlewares(clazz);
|
|
9
|
+
if (middlewares.length && !controllerType) {
|
|
10
|
+
const desc = ClassUtil.classDescription(clazz);
|
|
11
|
+
throw new Error(`${desc} @Middleware should use with controller decorator`);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29udHJvbGxlclZhbGlkYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlsL3ZhbGlkYXRvci9Db250cm9sbGVyVmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUU1QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUU5RCxNQUFNLE9BQU8sbUJBQW1CO0lBQzlCLHFCQUFxQjtJQUNyQixnRUFBZ0U7SUFDaEUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUF3QjtRQUN0QyxNQUFNLGNBQWMsR0FBRyxrQkFBa0IsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNuRSxNQUFNLFdBQVcsR0FBRyxrQkFBa0IsQ0FBQyx3QkFBd0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2RSxJQUFJLFdBQVcsQ0FBQyxNQUFNLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUMxQyxNQUFNLElBQUksR0FBRyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDL0MsTUFBTSxJQUFJLEtBQUssQ0FBQyxHQUFHLElBQUksbURBQW1ELENBQUMsQ0FBQztRQUM5RSxDQUFDO0lBQ0gsQ0FBQztDQUNGIn0=
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { ClassUtil } from '@eggjs/metadata';
|
|
2
|
+
import { MethodInfoUtil } from "../MethodInfoUtil.js";
|
|
3
|
+
import { ControllerInfoUtil } from "../ControllerInfoUtil.js";
|
|
4
|
+
export class MethodValidator {
|
|
5
|
+
// should throw error
|
|
6
|
+
// 1. use method middleware but not has method decorator
|
|
7
|
+
// 2. use context decorator but not has method decorator
|
|
8
|
+
// 3. method decorator type is not same as controller decorator type
|
|
9
|
+
static validate(clazz, methodName) {
|
|
10
|
+
const methodControllerType = MethodInfoUtil.getMethodControllerType(clazz, methodName);
|
|
11
|
+
const methodMiddlewares = MethodInfoUtil.getMethodMiddlewares(clazz, methodName);
|
|
12
|
+
const contextIndex = MethodInfoUtil.getMethodContextIndex(clazz, methodName);
|
|
13
|
+
if (!methodControllerType) {
|
|
14
|
+
if (methodMiddlewares.length) {
|
|
15
|
+
const desc = ClassUtil.classDescription(clazz);
|
|
16
|
+
throw new Error(`${desc}:${methodName} @Middleware should use with method decorator`);
|
|
17
|
+
}
|
|
18
|
+
if (contextIndex !== undefined) {
|
|
19
|
+
const desc = ClassUtil.classDescription(clazz);
|
|
20
|
+
throw new Error(`${desc}:${methodName} @Context should use with method decorator`);
|
|
21
|
+
}
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
const controllerType = ControllerInfoUtil.getControllerType(clazz);
|
|
25
|
+
if (methodControllerType !== controllerType) {
|
|
26
|
+
const desc = ClassUtil.classDescription(clazz);
|
|
27
|
+
throw new Error(`${desc}:${methodName} method decorator ${methodControllerType} can not be used with ${controllerType}`);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWV0aG9kVmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3V0aWwvdmFsaWRhdG9yL01ldGhvZFZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFNUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTlELE1BQU0sT0FBTyxlQUFlO0lBQzFCLHFCQUFxQjtJQUNyQix3REFBd0Q7SUFDeEQsd0RBQXdEO0lBQ3hELG9FQUFvRTtJQUNwRSxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQXdCLEVBQUUsVUFBa0I7UUFDMUQsTUFBTSxvQkFBb0IsR0FBRyxjQUFjLENBQUMsdUJBQXVCLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ3ZGLE1BQU0saUJBQWlCLEdBQUcsY0FBYyxDQUFDLG9CQUFvQixDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FBQztRQUNqRixNQUFNLFlBQVksR0FBRyxjQUFjLENBQUMscUJBQXFCLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzdFLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1lBQzFCLElBQUksaUJBQWlCLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQzdCLE1BQU0sSUFBSSxHQUFHLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDL0MsTUFBTSxJQUFJLEtBQUssQ0FBQyxHQUFHLElBQUksSUFBSSxVQUFVLCtDQUErQyxDQUFDLENBQUM7WUFDeEYsQ0FBQztZQUNELElBQUksWUFBWSxLQUFLLFNBQVMsRUFBRSxDQUFDO2dCQUMvQixNQUFNLElBQUksR0FBRyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQy9DLE1BQU0sSUFBSSxLQUFLLENBQUMsR0FBRyxJQUFJLElBQUksVUFBVSw0Q0FBNEMsQ0FBQyxDQUFDO1lBQ3JGLENBQUM7WUFDRCxPQUFPO1FBQ1QsQ0FBQztRQUNELE1BQU0sY0FBYyxHQUFHLGtCQUFrQixDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25FLElBQUksb0JBQW9CLEtBQUssY0FBYyxFQUFFLENBQUM7WUFDNUMsTUFBTSxJQUFJLEdBQUcsU0FBUyxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQy9DLE1BQU0sSUFBSSxLQUFLLENBQ2IsR0FBRyxJQUFJLElBQUksVUFBVSxxQkFBcUIsb0JBQW9CLHlCQUF5QixjQUFjLEVBQUUsQ0FDeEcsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0NBQ0YifQ==
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export * from "./ControllerValidator.js";
|
|
2
|
+
export * from "./MethodValidator.js";
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdXRpbC92YWxpZGF0b3IvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLHNCQUFzQixDQUFDIn0=
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@eggjs/controller-decorator",
|
|
3
|
-
"version": "4.0.0-beta.
|
|
3
|
+
"version": "4.0.0-beta.30",
|
|
4
4
|
"description": "tegg controller decorator",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"egg",
|
|
@@ -11,54 +11,52 @@
|
|
|
11
11
|
],
|
|
12
12
|
"type": "module",
|
|
13
13
|
"exports": {
|
|
14
|
-
".":
|
|
15
|
-
|
|
16
|
-
"default": "./src/index.js"
|
|
17
|
-
}
|
|
14
|
+
".": "./dist/index.js",
|
|
15
|
+
"./package.json": "./package.json"
|
|
18
16
|
},
|
|
19
17
|
"files": [
|
|
20
|
-
"
|
|
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/egg/tree/next/tegg/core/controller-decorator",
|
|
32
23
|
"bugs": {
|
|
33
|
-
"url": "https://github.com/eggjs/
|
|
24
|
+
"url": "https://github.com/eggjs/egg/issues"
|
|
34
25
|
},
|
|
35
26
|
"repository": {
|
|
36
27
|
"type": "git",
|
|
37
|
-
"url": "git@github.com:eggjs/
|
|
38
|
-
"directory": "core/controller-decorator"
|
|
28
|
+
"url": "git@github.com:eggjs/egg.git",
|
|
29
|
+
"directory": "tegg/core/controller-decorator"
|
|
39
30
|
},
|
|
40
31
|
"engines": {
|
|
41
|
-
"node": ">=
|
|
32
|
+
"node": ">=22.18.0"
|
|
42
33
|
},
|
|
43
34
|
"dependencies": {
|
|
44
|
-
"@eggjs/aop-decorator": "^4.0.0-beta.3",
|
|
45
|
-
"@eggjs/cookies": "^3.1.0",
|
|
46
|
-
"@eggjs/core-decorator": "^4.0.0-beta.3",
|
|
47
|
-
"@eggjs/tegg-common-util": "^4.0.0-beta.3",
|
|
48
|
-
"@eggjs/tegg-metadata": "^4.0.0-beta.3",
|
|
49
|
-
"@eggjs/tegg-types": "^4.0.0-beta.3",
|
|
50
35
|
"is-type-of": "^2.2.0",
|
|
51
36
|
"path-to-regexp": "^1.9.0",
|
|
52
|
-
"
|
|
37
|
+
"@eggjs/aop-decorator": "4.0.0-beta.30",
|
|
38
|
+
"@eggjs/cookies": "4.0.0-beta.30",
|
|
39
|
+
"@eggjs/core-decorator": "4.0.0-beta.30",
|
|
40
|
+
"@eggjs/metadata": "4.0.0-beta.30",
|
|
41
|
+
"@eggjs/tegg-types": "4.0.0-beta.30",
|
|
42
|
+
"@eggjs/tegg-common-util": "4.0.0-beta.30"
|
|
53
43
|
},
|
|
54
44
|
"devDependencies": {
|
|
55
|
-
"@types/node": "
|
|
56
|
-
"
|
|
57
|
-
"
|
|
58
|
-
"
|
|
45
|
+
"@types/node": "^24.9.1",
|
|
46
|
+
"typescript": "^5.9.3",
|
|
47
|
+
"tsdown": "0.15.9",
|
|
48
|
+
"unplugin-unused": "^0.5.4",
|
|
49
|
+
"egg": "4.1.0-beta.30"
|
|
59
50
|
},
|
|
60
51
|
"publishConfig": {
|
|
61
52
|
"access": "public"
|
|
62
53
|
},
|
|
63
|
-
"
|
|
64
|
-
|
|
54
|
+
"main": "./dist/index.js",
|
|
55
|
+
"module": "./dist/index.js",
|
|
56
|
+
"types": "./dist/index.d.ts",
|
|
57
|
+
"scripts": {
|
|
58
|
+
"clean": "rimraf dist *.tsbuildinfo",
|
|
59
|
+
"build": "tsdown && npm run clean && tsc -p tsconfig.build.json",
|
|
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=
|
package/src/builder/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './ControllerMetaBuilderFactory.js';
|
package/src/builder/index.js
DELETED
package/src/decorator/Acl.js
DELETED
|
@@ -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 +0,0 @@
|
|
|
1
|
-
export declare function Context(): (target: any, propertyKey: PropertyKey, parameterIndex: number) => void;
|
package/src/decorator/Context.js
DELETED
|
@@ -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,8 +0,0 @@
|
|
|
1
|
-
import type { HTTPParamParams, HTTPQueriesParams, HTTPQueryParams } from '@eggjs/tegg-types';
|
|
2
|
-
export declare function HTTPBody(): (target: any, propertyKey: PropertyKey, parameterIndex: number) => void;
|
|
3
|
-
export declare function HTTPHeaders(): (target: any, propertyKey: PropertyKey, parameterIndex: number) => void;
|
|
4
|
-
export declare function HTTPQuery(param?: HTTPQueryParams): (target: any, propertyKey: PropertyKey, parameterIndex: number) => void;
|
|
5
|
-
export declare function HTTPQueries(param?: HTTPQueriesParams): (target: any, propertyKey: PropertyKey, parameterIndex: number) => void;
|
|
6
|
-
export declare function HTTPParam(param?: HTTPParamParams): (target: any, propertyKey: PropertyKey, parameterIndex: number) => void;
|
|
7
|
-
export declare function Request(): (target: any, propertyKey: PropertyKey, parameterIndex: number) => void;
|
|
8
|
-
export declare function Cookies(): (target: any, propertyKey: PropertyKey, parameterIndex: number) => void;
|