@eggjs/core-decorator 4.0.0-beta.2 → 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/decorator/ConfigSource.js +8 -0
- package/{src → dist}/decorator/ContextProto.d.ts +2 -1
- package/dist/decorator/ContextProto.js +10 -0
- package/dist/decorator/EggQualifier.js +8 -0
- package/dist/decorator/InitTypeQualifier.js +8 -0
- package/dist/decorator/Inject.d.ts +14 -0
- package/dist/decorator/Inject.js +112 -0
- package/dist/decorator/ModuleQualifier.js +8 -0
- package/{src → dist}/decorator/MultiInstanceInfo.d.ts +1 -1
- package/dist/decorator/MultiInstanceInfo.js +8 -0
- package/{src → dist}/decorator/MultiInstanceProto.js +2 -2
- package/dist/decorator/Prototype.d.ts +8 -0
- package/dist/decorator/Prototype.js +34 -0
- package/{src → dist}/decorator/SingletonProto.d.ts +2 -1
- package/dist/decorator/SingletonProto.js +10 -0
- package/dist/decorator/index.d.ts +10 -0
- package/dist/decorator/index.js +11 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +4 -0
- package/dist/util/MetadataUtil.js +83 -0
- package/{src → dist}/util/PrototypeUtil.d.ts +14 -14
- package/dist/util/PrototypeUtil.js +251 -0
- package/dist/util/QualifierUtil.js +92 -0
- package/dist/util/index.d.ts +3 -0
- package/dist/util/index.js +4 -0
- package/package.json +27 -29
- package/src/decorator/ConfigSource.js +0 -8
- package/src/decorator/ContextProto.js +0 -10
- package/src/decorator/EggQualifier.js +0 -8
- package/src/decorator/InitTypeQualifier.js +0 -8
- package/src/decorator/Inject.d.ts +0 -3
- package/src/decorator/Inject.js +0 -95
- package/src/decorator/ModuleQualifier.js +0 -8
- package/src/decorator/MultiInstanceInfo.js +0 -8
- package/src/decorator/Prototype.d.ts +0 -2
- package/src/decorator/Prototype.js +0 -29
- package/src/decorator/SingletonProto.js +0 -10
- package/src/decorator/index.d.ts +0 -10
- package/src/decorator/index.js +0 -11
- package/src/index.d.ts +0 -3
- package/src/index.js +0 -4
- package/src/util/MetadataUtil.js +0 -83
- package/src/util/PrototypeUtil.js +0 -249
- package/src/util/QualifierUtil.js +0 -92
- package/src/util/index.d.ts +0 -3
- package/src/util/index.js +0 -4
- /package/{src → dist}/decorator/ConfigSource.d.ts +0 -0
- /package/{src → dist}/decorator/EggQualifier.d.ts +0 -0
- /package/{src → dist}/decorator/InitTypeQualifier.d.ts +0 -0
- /package/{src → dist}/decorator/ModuleQualifier.d.ts +0 -0
- /package/{src → dist}/decorator/MultiInstanceProto.d.ts +0 -0
- /package/{src → dist}/util/MetadataUtil.d.ts +0 -0
- /package/{src → dist}/util/QualifierUtil.d.ts +0 -0
package/README.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# `@eggjs/core-decorator`
|
|
2
2
|
|
|
3
|
+
[![NPM version][npm-image]][npm-url]
|
|
4
|
+
[![Known Vulnerabilities][snyk-image]][snyk-url]
|
|
5
|
+
[![npm download][download-image]][download-url]
|
|
6
|
+
[](https://nodejs.org/en/download/)
|
|
7
|
+
|
|
8
|
+
[npm-image]: https://img.shields.io/npm/v/@eggjs/core-decorator.svg?style=flat-square
|
|
9
|
+
[npm-url]: https://npmjs.org/package/@eggjs/core-decorator
|
|
10
|
+
[snyk-image]: https://snyk.io/test/npm/@eggjs/core-decorator/badge.svg?style=flat-square
|
|
11
|
+
[snyk-url]: https://snyk.io/test/npm/@eggjs/core-decorator
|
|
12
|
+
[download-image]: https://img.shields.io/npm/dm/@eggjs/core-decorator.svg?style=flat-square
|
|
13
|
+
[download-url]: https://npmjs.org/package/@eggjs/core-decorator
|
|
14
|
+
|
|
3
15
|
## Usage
|
|
4
16
|
|
|
5
|
-
Please read [@eggjs/tegg-plugin](../../plugin/tegg)
|
|
17
|
+
Please read [@eggjs/tegg-plugin](../../plugin/tegg/README.md)
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ConfigSourceQualifierAttribute } from '@eggjs/tegg-types';
|
|
2
|
+
import { QualifierUtil } from "../util/index.js";
|
|
3
|
+
export function ConfigSourceQualifier(moduleName) {
|
|
4
|
+
return function (target, propertyKey, parameterIndex) {
|
|
5
|
+
QualifierUtil.addInjectQualifier(target, propertyKey, parameterIndex, ConfigSourceQualifierAttribute, moduleName);
|
|
6
|
+
};
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29uZmlnU291cmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RlY29yYXRvci9Db25maWdTb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHbkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRWpELE1BQU0sVUFBVSxxQkFBcUIsQ0FBQyxVQUFrQjtJQUN0RCxPQUFPLFVBQVUsTUFBVyxFQUFFLFdBQXlCLEVBQUUsY0FBdUI7UUFDOUUsYUFBYSxDQUFDLGtCQUFrQixDQUM5QixNQUEyQixFQUMzQixXQUFXLEVBQ1gsY0FBYyxFQUNkLDhCQUE4QixFQUM5QixVQUFVLENBQ1gsQ0FBQztJQUNKLENBQUMsQ0FBQztBQUNKLENBQUMifQ==
|
|
@@ -1,2 +1,3 @@
|
|
|
1
1
|
import type { ContextProtoParams } from '@eggjs/tegg-types';
|
|
2
|
-
|
|
2
|
+
import { type PrototypeDecorator } from './Prototype.ts';
|
|
3
|
+
export declare function ContextProto(params?: ContextProtoParams): PrototypeDecorator;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { AccessLevel, ObjectInitType } from '@eggjs/tegg-types';
|
|
2
|
+
import { Prototype } from "./Prototype.js";
|
|
3
|
+
export function ContextProto(params) {
|
|
4
|
+
return Prototype({
|
|
5
|
+
initType: ObjectInitType.CONTEXT,
|
|
6
|
+
accessLevel: params?.accessLevel || AccessLevel.PRIVATE,
|
|
7
|
+
...params,
|
|
8
|
+
});
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29udGV4dFByb3RvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RlY29yYXRvci9Db250ZXh0UHJvdG8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUdoRSxPQUFPLEVBQUUsU0FBUyxFQUEyQixNQUFNLGdCQUFnQixDQUFDO0FBRXBFLE1BQU0sVUFBVSxZQUFZLENBQUMsTUFBMkI7SUFDdEQsT0FBTyxTQUFTLENBQUM7UUFDZixRQUFRLEVBQUUsY0FBYyxDQUFDLE9BQU87UUFDaEMsV0FBVyxFQUFFLE1BQU0sRUFBRSxXQUFXLElBQUksV0FBVyxDQUFDLE9BQU87UUFDdkQsR0FBRyxNQUFNO0tBQ1YsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyJ9
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { EggQualifierAttribute } from '@eggjs/tegg-types';
|
|
2
|
+
import { QualifierUtil } from "../util/index.js";
|
|
3
|
+
export function EggQualifier(eggType) {
|
|
4
|
+
return function (target, propertyKey, parameterIndex) {
|
|
5
|
+
QualifierUtil.addInjectQualifier(target, propertyKey, parameterIndex, EggQualifierAttribute, eggType);
|
|
6
|
+
};
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWdnUXVhbGlmaWVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RlY29yYXRvci9FZ2dRdWFsaWZpZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHMUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRWpELE1BQU0sVUFBVSxZQUFZLENBQUMsT0FBZ0I7SUFDM0MsT0FBTyxVQUFVLE1BQVcsRUFBRSxXQUF5QixFQUFFLGNBQXVCO1FBQzlFLGFBQWEsQ0FBQyxrQkFBa0IsQ0FDOUIsTUFBMkIsRUFDM0IsV0FBVyxFQUNYLGNBQWMsRUFDZCxxQkFBcUIsRUFDckIsT0FBTyxDQUNSLENBQUM7SUFDSixDQUFDLENBQUM7QUFDSixDQUFDIn0=
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { InitTypeQualifierAttribute } from '@eggjs/tegg-types';
|
|
2
|
+
import { QualifierUtil } from "../util/index.js";
|
|
3
|
+
export function InitTypeQualifier(initType) {
|
|
4
|
+
return function (target, propertyKey, parameterIndex) {
|
|
5
|
+
QualifierUtil.addInjectQualifier(target, propertyKey, parameterIndex, InitTypeQualifierAttribute, initType);
|
|
6
|
+
};
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW5pdFR5cGVRdWFsaWZpZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGVjb3JhdG9yL0luaXRUeXBlUXVhbGlmaWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRy9ELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVqRCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsUUFBNEI7SUFDNUQsT0FBTyxVQUFVLE1BQVcsRUFBRSxXQUF5QixFQUFFLGNBQXVCO1FBQzlFLGFBQWEsQ0FBQyxrQkFBa0IsQ0FDOUIsTUFBMkIsRUFDM0IsV0FBVyxFQUNYLGNBQWMsRUFDZCwwQkFBMEIsRUFDMUIsUUFBUSxDQUNULENBQUM7SUFDSixDQUFDLENBQUM7QUFDSixDQUFDIn0=
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { type InjectParams } from '@eggjs/tegg-types';
|
|
2
|
+
export type InjectDecorator = (target: any, propertyKey?: PropertyKey, parameterIndex?: number) => void;
|
|
3
|
+
/**
|
|
4
|
+
* Inject decorator Factory
|
|
5
|
+
* @param param - Inject parameters
|
|
6
|
+
* @returns Inject decorator
|
|
7
|
+
*/
|
|
8
|
+
export declare function Inject(param?: InjectParams | string): InjectDecorator;
|
|
9
|
+
/**
|
|
10
|
+
* InjectOptional decorator Factory
|
|
11
|
+
* @param param - InjectOptional parameters
|
|
12
|
+
* @returns InjectOptional decorator
|
|
13
|
+
*/
|
|
14
|
+
export declare function InjectOptional(param?: Omit<InjectParams, 'optional'> | string): InjectDecorator;
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { debuglog } from 'node:util';
|
|
2
|
+
import { InjectType, InitTypeQualifierAttribute, } from '@eggjs/tegg-types';
|
|
3
|
+
import { ObjectUtils } from '@eggjs/tegg-common-util';
|
|
4
|
+
import { PrototypeUtil, QualifierUtil } from "../util/index.js";
|
|
5
|
+
const debug = debuglog('tegg/core/core-decorator/decorator/Inject');
|
|
6
|
+
function guessInjectInfo(clazz, name, proto) {
|
|
7
|
+
let objName;
|
|
8
|
+
let initType;
|
|
9
|
+
if (typeof proto === 'function' && proto !== Object) {
|
|
10
|
+
// if property type is function and not Object( means maybe proto class ), then try to read EggPrototypeInfo.name as obj name
|
|
11
|
+
const info = PrototypeUtil.getProperty(proto);
|
|
12
|
+
objName = info?.name;
|
|
13
|
+
// try to read EggPrototypeInfo.initType as qualifier
|
|
14
|
+
if (info?.initType) {
|
|
15
|
+
const customInitType = QualifierUtil.getProperQualifier(clazz, name, InitTypeQualifierAttribute);
|
|
16
|
+
if (!customInitType) {
|
|
17
|
+
initType = info.initType;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
return {
|
|
22
|
+
objName,
|
|
23
|
+
initType,
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Inject decorator Factory
|
|
28
|
+
* @param param - Inject parameters
|
|
29
|
+
* @returns Inject decorator
|
|
30
|
+
*/
|
|
31
|
+
export function Inject(param) {
|
|
32
|
+
const injectParam = typeof param === 'string' ? { name: param } : param;
|
|
33
|
+
function propertyInject(target, propertyKey) {
|
|
34
|
+
let objName;
|
|
35
|
+
let initType;
|
|
36
|
+
if (!injectParam) {
|
|
37
|
+
// `@Inject() foo: FooService`
|
|
38
|
+
// try to read design:type from proto
|
|
39
|
+
const proto = PrototypeUtil.getDesignType(target, propertyKey);
|
|
40
|
+
const result = guessInjectInfo(target.constructor, propertyKey, proto);
|
|
41
|
+
objName = result.objName;
|
|
42
|
+
initType = result.initType;
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
// params allow string or object
|
|
46
|
+
objName = injectParam?.name;
|
|
47
|
+
}
|
|
48
|
+
const injectObject = {
|
|
49
|
+
refName: propertyKey,
|
|
50
|
+
objName: objName || propertyKey,
|
|
51
|
+
};
|
|
52
|
+
if (injectParam?.optional) {
|
|
53
|
+
injectObject.optional = true;
|
|
54
|
+
}
|
|
55
|
+
PrototypeUtil.setInjectType(target.constructor, InjectType.PROPERTY);
|
|
56
|
+
PrototypeUtil.addInjectObject(target.constructor, injectObject);
|
|
57
|
+
debug('propertyInject, clazz: %s, propertyKey: %s, injectObject: %o', target.constructor.name, propertyKey, injectObject);
|
|
58
|
+
// console.trace();
|
|
59
|
+
if (initType) {
|
|
60
|
+
QualifierUtil.addProperQualifier(target.constructor, propertyKey, InitTypeQualifierAttribute, initType);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
function constructorInject(target, parameterIndex) {
|
|
64
|
+
const argNames = ObjectUtils.getConstructorArgNameList(target);
|
|
65
|
+
const argName = argNames[parameterIndex];
|
|
66
|
+
let objName;
|
|
67
|
+
let initType;
|
|
68
|
+
if (!injectParam) {
|
|
69
|
+
// try to read proto from design:paramtypes
|
|
70
|
+
const protos = PrototypeUtil.getDesignParamtypes(target);
|
|
71
|
+
({ objName, initType } = guessInjectInfo(target, argName, protos?.[parameterIndex]));
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
// params allow string or object
|
|
75
|
+
objName = injectParam?.name;
|
|
76
|
+
}
|
|
77
|
+
const injectObject = {
|
|
78
|
+
refIndex: parameterIndex,
|
|
79
|
+
refName: argName,
|
|
80
|
+
objName: objName || argName,
|
|
81
|
+
};
|
|
82
|
+
if (injectParam?.optional) {
|
|
83
|
+
injectObject.optional = true;
|
|
84
|
+
}
|
|
85
|
+
PrototypeUtil.setInjectType(target, InjectType.CONSTRUCTOR);
|
|
86
|
+
PrototypeUtil.addInjectConstructor(target, injectObject);
|
|
87
|
+
if (initType) {
|
|
88
|
+
QualifierUtil.addProperQualifier(target, argName, InitTypeQualifierAttribute, initType);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
return function (target, propertyKey, parameterIndex) {
|
|
92
|
+
if (typeof parameterIndex === 'undefined') {
|
|
93
|
+
propertyInject(target, propertyKey);
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
constructorInject(target, parameterIndex);
|
|
97
|
+
}
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* InjectOptional decorator Factory
|
|
102
|
+
* @param param - InjectOptional parameters
|
|
103
|
+
* @returns InjectOptional decorator
|
|
104
|
+
*/
|
|
105
|
+
export function InjectOptional(param) {
|
|
106
|
+
const injectParam = typeof param === 'string' ? { name: param } : param;
|
|
107
|
+
return Inject({
|
|
108
|
+
...injectParam,
|
|
109
|
+
optional: true,
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW5qZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RlY29yYXRvci9JbmplY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVyQyxPQUFPLEVBS0wsVUFBVSxFQUNWLDBCQUEwQixHQUMzQixNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRWhFLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQywyQ0FBMkMsQ0FBQyxDQUFDO0FBRXBFLFNBQVMsZUFBZSxDQUFDLEtBQXdCLEVBQUUsSUFBaUIsRUFBRSxLQUFVO0lBQzlFLElBQUksT0FBZ0MsQ0FBQztJQUNyQyxJQUFJLFFBQTRCLENBQUM7SUFFakMsSUFBSSxPQUFPLEtBQUssS0FBSyxVQUFVLElBQUksS0FBSyxLQUFLLE1BQU0sRUFBRSxDQUFDO1FBQ3BELDZIQUE2SDtRQUM3SCxNQUFNLElBQUksR0FBRyxhQUFhLENBQUMsV0FBVyxDQUFDLEtBQTBCLENBQUMsQ0FBQztRQUNuRSxPQUFPLEdBQUcsSUFBSSxFQUFFLElBQUksQ0FBQztRQUNyQixxREFBcUQ7UUFDckQsSUFBSSxJQUFJLEVBQUUsUUFBUSxFQUFFLENBQUM7WUFDbkIsTUFBTSxjQUFjLEdBQUcsYUFBYSxDQUFDLGtCQUFrQixDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsMEJBQTBCLENBQUMsQ0FBQztZQUNqRyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQ3BCLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1lBQzNCLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU87UUFDTCxPQUFPO1FBQ1AsUUFBUTtLQUNULENBQUM7QUFDSixDQUFDO0FBSUQ7Ozs7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
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { LoadUnitNameQualifierAttribute } from '@eggjs/tegg-types';
|
|
2
|
+
import { QualifierUtil } from "../util/index.js";
|
|
3
|
+
export function ModuleQualifier(moduleName) {
|
|
4
|
+
return function (target, propertyKey, parameterIndex) {
|
|
5
|
+
QualifierUtil.addInjectQualifier(target, propertyKey, parameterIndex, LoadUnitNameQualifierAttribute, moduleName);
|
|
6
|
+
};
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9kdWxlUXVhbGlmaWVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RlY29yYXRvci9Nb2R1bGVRdWFsaWZpZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHbkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRWpELE1BQU0sVUFBVSxlQUFlLENBQUMsVUFBa0I7SUFDaEQsT0FBTyxVQUFVLE1BQVcsRUFBRSxXQUF5QixFQUFFLGNBQXVCO1FBQzlFLGFBQWEsQ0FBQyxrQkFBa0IsQ0FDOUIsTUFBMkIsRUFDM0IsV0FBVyxFQUNYLGNBQWMsRUFDZCw4QkFBOEIsRUFDOUIsVUFBVSxDQUNYLENBQUM7SUFDSixDQUFDLENBQUM7QUFDSixDQUFDIn0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { QualifierAttribute } from '@eggjs/tegg-types';
|
|
1
|
+
import type { QualifierAttribute } from '@eggjs/tegg-types';
|
|
2
2
|
export declare function MultiInstanceInfo(attributes: QualifierAttribute[]): (target: any, _propertyKey: PropertyKey | undefined, parameterIndex: number) => void;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { PrototypeUtil } from "../util/index.js";
|
|
2
|
+
export function MultiInstanceInfo(attributes) {
|
|
3
|
+
return function (target, _propertyKey, parameterIndex) {
|
|
4
|
+
PrototypeUtil.setMultiInstanceConstructorIndex(target, parameterIndex);
|
|
5
|
+
PrototypeUtil.setMultiInstanceConstructorAttributes(target, attributes);
|
|
6
|
+
};
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTXVsdGlJbnN0YW5jZUluZm8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGVjb3JhdG9yL011bHRpSW5zdGFuY2VJbmZvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVqRCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsVUFBZ0M7SUFDaEUsT0FBTyxVQUFVLE1BQVcsRUFBRSxZQUFxQyxFQUFFLGNBQXNCO1FBQ3pGLGFBQWEsQ0FBQyxnQ0FBZ0MsQ0FBQyxNQUFNLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFDdkUsYUFBYSxDQUFDLHFDQUFxQyxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsQ0FBQztJQUMxRSxDQUFDLENBQUM7QUFDSixDQUFDIn0=
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ObjectInitType, AccessLevel, DEFAULT_PROTO_IMPL_TYPE } from '@eggjs/tegg-types';
|
|
2
2
|
import { StackUtil } from '@eggjs/tegg-common-util';
|
|
3
|
-
import { PrototypeUtil } from
|
|
3
|
+
import { PrototypeUtil } from "../util/index.js";
|
|
4
4
|
const DEFAULT_PARAMS = {
|
|
5
5
|
initType: ObjectInitType.SINGLETON,
|
|
6
6
|
accessLevel: AccessLevel.PRIVATE,
|
|
@@ -33,4 +33,4 @@ export function MultiInstanceProto(param) {
|
|
|
33
33
|
PrototypeUtil.setFilePath(clazz, StackUtil.getCalleeFromStack(false, 4));
|
|
34
34
|
};
|
|
35
35
|
}
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTXVsdGlJbnN0YW5jZVByb3RvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RlY29yYXRvci9NdWx0aUluc3RhbmNlUHJvdG8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQVN6RixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFcEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRWpELE1BQU0sY0FBYyxHQUFHO0lBQ3JCLFFBQVEsRUFBRSxjQUFjLENBQUMsU0FBUztJQUNsQyxXQUFXLEVBQUUsV0FBVyxDQUFDLE9BQU87SUFDaEMsYUFBYSxFQUFFLHVCQUF1QjtDQUN2QyxDQUFDO0FBRUYsTUFBTSxVQUFVLGtCQUFrQixDQUFDLEtBQW1DO0lBQ3BFLE9BQU8sVUFBVSxLQUF3QjtRQUN2QyxhQUFhLENBQUMsOEJBQThCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDcEQsSUFBSyxLQUE0QyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQzFELE1BQU0sUUFBUSxHQUFrQztnQkFDOUMsR0FBRyxjQUFjO2dCQUNqQixHQUFJLEtBQTRDO2dCQUNoRCxTQUFTLEVBQUUsS0FBSyxDQUFDLElBQUk7YUFDdEIsQ0FBQztZQUNGLGFBQWEsQ0FBQyw4QkFBOEIsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDaEUsQ0FBQzthQUFNLElBQUssS0FBOEMsQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUN0RSxNQUFNLFFBQVEsR0FBMEM7Z0JBQ3RELEdBQUcsY0FBYztnQkFDakIsR0FBSSxLQUE4QztnQkFDbEQsU0FBUyxFQUFFLEtBQUssQ0FBQyxJQUFJO2FBQ3RCLENBQUM7WUFDRixhQUFhLENBQUMsZ0NBQWdDLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ2xFLENBQUM7UUFFRCw4Q0FBOEM7UUFDOUMsMkRBQTJEO1FBQzNELGtHQUFrRztRQUNsRyxrR0FBa0c7UUFDbEcsdUVBQXVFO1FBQ3ZFLGFBQWEsQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMzRSxDQUFDLENBQUM7QUFDSixDQUFDIn0=
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { EggProtoImplClass, PrototypeParams } from '@eggjs/tegg-types';
|
|
2
|
+
export type PrototypeDecorator = (clazz: EggProtoImplClass) => void;
|
|
3
|
+
/**
|
|
4
|
+
* Prototype decorator Factory
|
|
5
|
+
* @param param - Prototype parameters
|
|
6
|
+
* @returns Prototype decorator
|
|
7
|
+
*/
|
|
8
|
+
export declare function Prototype(param?: PrototypeParams): PrototypeDecorator;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { NameUtil, StackUtil } from '@eggjs/tegg-common-util';
|
|
2
|
+
import { AccessLevel, DEFAULT_PROTO_IMPL_TYPE, ObjectInitType } from '@eggjs/tegg-types';
|
|
3
|
+
import { PrototypeUtil } from "../util/index.js";
|
|
4
|
+
const DEFAULT_PARAMS = {
|
|
5
|
+
initType: ObjectInitType.SINGLETON,
|
|
6
|
+
accessLevel: AccessLevel.PRIVATE,
|
|
7
|
+
protoImplType: DEFAULT_PROTO_IMPL_TYPE,
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* Prototype decorator Factory
|
|
11
|
+
* @param param - Prototype parameters
|
|
12
|
+
* @returns Prototype decorator
|
|
13
|
+
*/
|
|
14
|
+
export function Prototype(param) {
|
|
15
|
+
return function (clazz) {
|
|
16
|
+
PrototypeUtil.setIsEggPrototype(clazz);
|
|
17
|
+
const property = {
|
|
18
|
+
...DEFAULT_PARAMS,
|
|
19
|
+
...param,
|
|
20
|
+
className: clazz.name,
|
|
21
|
+
};
|
|
22
|
+
if (!property.name) {
|
|
23
|
+
property.name = NameUtil.getClassName(clazz);
|
|
24
|
+
}
|
|
25
|
+
PrototypeUtil.setProperty(clazz, property);
|
|
26
|
+
// './tegg/core/common-util/src/StackUtil.ts',
|
|
27
|
+
// './tegg/core/core-decorator/src/decorator/Prototype.ts',
|
|
28
|
+
// './tegg/core/core-decorator/node_modules/_reflect-metadata@0.1.13@reflect-metadata/Reflect.js',
|
|
29
|
+
// './tegg/core/core-decorator/node_modules/_reflect-metadata@0.1.13@reflect-metadata/Reflect.js',
|
|
30
|
+
// './tegg/core/core-decorator/test/fixtures/decators/CacheService.ts',
|
|
31
|
+
PrototypeUtil.setFilePath(clazz, StackUtil.getCalleeFromStack(false, 4));
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHJvdG90eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RlY29yYXRvci9Qcm90b3R5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsV0FBVyxFQUFFLHVCQUF1QixFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBR3pGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVqRCxNQUFNLGNBQWMsR0FBRztJQUNyQixRQUFRLEVBQUUsY0FBYyxDQUFDLFNBQVM7SUFDbEMsV0FBVyxFQUFFLFdBQVcsQ0FBQyxPQUFPO0lBQ2hDLGFBQWEsRUFBRSx1QkFBdUI7Q0FDdkMsQ0FBQztBQUlGOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsU0FBUyxDQUFDLEtBQXVCO0lBQy9DLE9BQU8sVUFBVSxLQUF3QjtRQUN2QyxhQUFhLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkMsTUFBTSxRQUFRLEdBQThCO1lBQzFDLEdBQUcsY0FBYztZQUNqQixHQUFHLEtBQUs7WUFDUixTQUFTLEVBQUUsS0FBSyxDQUFDLElBQUk7U0FDdEIsQ0FBQztRQUNGLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDbkIsUUFBUSxDQUFDLElBQUksR0FBRyxRQUFRLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQy9DLENBQUM7UUFDRCxhQUFhLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxRQUE0QixDQUFDLENBQUM7UUFFL0QsOENBQThDO1FBQzlDLDJEQUEyRDtRQUMzRCxrR0FBa0c7UUFDbEcsa0dBQWtHO1FBQ2xHLHVFQUF1RTtRQUN2RSxhQUFhLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsa0JBQWtCLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDM0UsQ0FBQyxDQUFDO0FBQ0osQ0FBQyJ9
|
|
@@ -1,2 +1,3 @@
|
|
|
1
1
|
import type { SingletonProtoParams } from '@eggjs/tegg-types';
|
|
2
|
-
|
|
2
|
+
import { type PrototypeDecorator } from './Prototype.ts';
|
|
3
|
+
export declare function SingletonProto(params?: SingletonProtoParams): PrototypeDecorator;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { AccessLevel, ObjectInitType } from '@eggjs/tegg-types';
|
|
2
|
+
import { Prototype } from "./Prototype.js";
|
|
3
|
+
export function SingletonProto(params) {
|
|
4
|
+
return Prototype({
|
|
5
|
+
initType: ObjectInitType.SINGLETON,
|
|
6
|
+
accessLevel: params?.accessLevel || AccessLevel.PRIVATE,
|
|
7
|
+
...params,
|
|
8
|
+
});
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2luZ2xldG9uUHJvdG8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGVjb3JhdG9yL1NpbmdsZXRvblByb3RvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHaEUsT0FBTyxFQUFFLFNBQVMsRUFBMkIsTUFBTSxnQkFBZ0IsQ0FBQztBQUVwRSxNQUFNLFVBQVUsY0FBYyxDQUFDLE1BQTZCO0lBQzFELE9BQU8sU0FBUyxDQUFDO1FBQ2YsUUFBUSxFQUFFLGNBQWMsQ0FBQyxTQUFTO1FBQ2xDLFdBQVcsRUFBRSxNQUFNLEVBQUUsV0FBVyxJQUFJLFdBQVcsQ0FBQyxPQUFPO1FBQ3ZELEdBQUcsTUFBTTtLQUNWLENBQUMsQ0FBQztBQUNMLENBQUMifQ==
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export * from './ConfigSource.ts';
|
|
2
|
+
export * from './ContextProto.ts';
|
|
3
|
+
export * from './EggQualifier.ts';
|
|
4
|
+
export * from './InitTypeQualifier.ts';
|
|
5
|
+
export * from './Inject.ts';
|
|
6
|
+
export * from './ModuleQualifier.ts';
|
|
7
|
+
export * from './MultiInstanceInfo.ts';
|
|
8
|
+
export * from './MultiInstanceProto.ts';
|
|
9
|
+
export * from './Prototype.ts';
|
|
10
|
+
export * from './SingletonProto.ts';
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export * from "./ConfigSource.js";
|
|
2
|
+
export * from "./ContextProto.js";
|
|
3
|
+
export * from "./EggQualifier.js";
|
|
4
|
+
export * from "./InitTypeQualifier.js";
|
|
5
|
+
export * from "./Inject.js";
|
|
6
|
+
export * from "./ModuleQualifier.js";
|
|
7
|
+
export * from "./MultiInstanceInfo.js";
|
|
8
|
+
export * from "./MultiInstanceProto.js";
|
|
9
|
+
export * from "./Prototype.js";
|
|
10
|
+
export * from "./SingletonProto.js";
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGVjb3JhdG9yL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLHFCQUFxQixDQUFDIn0=
|
package/dist/index.d.ts
ADDED
package/dist/index.js
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export * from '@eggjs/tegg-types/core-decorator';
|
|
2
|
+
export * from "./decorator/index.js";
|
|
3
|
+
export * from "./util/index.js";
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxrQ0FBa0MsQ0FBQztBQUVqRCxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsaUJBQWlCLENBQUMifQ==
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
export class MetadataUtil {
|
|
2
|
+
static deleteMetaData(metadataKey, clazz) {
|
|
3
|
+
Reflect.deleteMetadata(metadataKey, clazz);
|
|
4
|
+
}
|
|
5
|
+
static defineMetaData(metadataKey, metadataValue, clazz) {
|
|
6
|
+
Reflect.defineMetadata(metadataKey, metadataValue, clazz);
|
|
7
|
+
}
|
|
8
|
+
static getOwnMetaData(metadataKey, clazz) {
|
|
9
|
+
return Reflect.getOwnMetadata(metadataKey, clazz);
|
|
10
|
+
}
|
|
11
|
+
static hasMetaData(metadataKey, clazz, propKey) {
|
|
12
|
+
return Reflect.hasMetadata(metadataKey, clazz, propKey);
|
|
13
|
+
}
|
|
14
|
+
static getMetaData(metadataKey, clazz, propKey) {
|
|
15
|
+
return Reflect.getMetadata(metadataKey, clazz, propKey);
|
|
16
|
+
}
|
|
17
|
+
static getBooleanMetaData(metadataKey, clazz) {
|
|
18
|
+
return !!this.getMetaData(metadataKey, clazz);
|
|
19
|
+
}
|
|
20
|
+
static getOwnBooleanMetaData(metadataKey, clazz) {
|
|
21
|
+
return !!this.getOwnMetaData(metadataKey, clazz);
|
|
22
|
+
}
|
|
23
|
+
static getArrayMetaData(metadataKey, clazz) {
|
|
24
|
+
return this.getMetaData(metadataKey, clazz) || [];
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* init array metadata
|
|
28
|
+
* not inherit parent metadata
|
|
29
|
+
* return value true means use default value
|
|
30
|
+
* return value false means use map value
|
|
31
|
+
*/
|
|
32
|
+
static initArrayMetaData(metadataKey, clazz, defaultValue) {
|
|
33
|
+
const ownMetaData = this.getOwnMetaData(metadataKey, clazz);
|
|
34
|
+
if (!ownMetaData) {
|
|
35
|
+
this.defineMetaData(metadataKey, defaultValue, clazz);
|
|
36
|
+
}
|
|
37
|
+
return this.getOwnMetaData(metadataKey, clazz);
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* init own array metadata
|
|
41
|
+
* if parent metadata exists, inherit
|
|
42
|
+
* if parent metadata not exits, use default value
|
|
43
|
+
* return value true means use default value
|
|
44
|
+
* return value false means use map value
|
|
45
|
+
*/
|
|
46
|
+
static initOwnArrayMetaData(metadataKey, clazz, defaultValue) {
|
|
47
|
+
const ownMetaData = this.getOwnMetaData(metadataKey, clazz);
|
|
48
|
+
if (!ownMetaData) {
|
|
49
|
+
const parentValue = this.getMetaData(metadataKey, clazz);
|
|
50
|
+
const ownDefaultValue = parentValue || defaultValue;
|
|
51
|
+
const selfValue = ownDefaultValue.slice();
|
|
52
|
+
this.defineMetaData(metadataKey, selfValue, clazz);
|
|
53
|
+
}
|
|
54
|
+
return this.getOwnMetaData(metadataKey, clazz);
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* init own map metadata
|
|
58
|
+
* if parent metadata exists, inherit
|
|
59
|
+
* if parent metadata not exits, use default value
|
|
60
|
+
* return value true means use default value
|
|
61
|
+
* return value false means use map value
|
|
62
|
+
*/
|
|
63
|
+
static initOwnMapMetaData(metadataKey, clazz, defaultValue) {
|
|
64
|
+
const ownMetaData = this.getOwnMetaData(metadataKey, clazz);
|
|
65
|
+
if (!ownMetaData) {
|
|
66
|
+
const parentValue = this.getMetaData(metadataKey, clazz);
|
|
67
|
+
const selfValue = new Map();
|
|
68
|
+
const ownDefaultValue = parentValue || defaultValue;
|
|
69
|
+
for (const [k, v] of ownDefaultValue) {
|
|
70
|
+
selfValue.set(k, v);
|
|
71
|
+
}
|
|
72
|
+
this.defineMetaData(metadataKey, selfValue, clazz);
|
|
73
|
+
}
|
|
74
|
+
return this.getOwnMetaData(metadataKey, clazz);
|
|
75
|
+
}
|
|
76
|
+
static getOrStoreMetaData(metadataKey, clazz, metadataValue) {
|
|
77
|
+
if (!Reflect.hasMetadata(metadataKey, clazz)) {
|
|
78
|
+
Reflect.defineMetadata(metadataKey, metadataValue, clazz);
|
|
79
|
+
}
|
|
80
|
+
return Reflect.getMetadata(metadataKey, clazz);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWV0YWRhdGFVdGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWwvTWV0YWRhdGFVdGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxZQUFZO0lBQ3ZCLE1BQU0sQ0FBQyxjQUFjLENBQUMsV0FBd0IsRUFBRSxLQUF3QjtRQUN0RSxPQUFPLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsTUFBTSxDQUFDLGNBQWMsQ0FBSSxXQUF3QixFQUFFLGFBQWdCLEVBQUUsS0FBd0I7UUFDM0YsT0FBTyxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsYUFBYSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRCxNQUFNLENBQUMsY0FBYyxDQUFJLFdBQXdCLEVBQUUsS0FBd0I7UUFDekUsT0FBTyxPQUFPLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsTUFBTSxDQUFDLFdBQVcsQ0FBQyxXQUF3QixFQUFFLEtBQXdCLEVBQUUsT0FBcUI7UUFDMUYsT0FBTyxPQUFPLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxLQUFLLEVBQUUsT0FBaUIsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFRCxNQUFNLENBQUMsV0FBVyxDQUFJLFdBQXdCLEVBQUUsS0FBd0IsRUFBRSxPQUFxQjtRQUM3RixPQUFPLE9BQU8sQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLEtBQUssRUFBRSxPQUFpQixDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUVELE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxXQUF3QixFQUFFLEtBQXdCO1FBQzFFLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCxNQUFNLENBQUMscUJBQXFCLENBQUMsV0FBd0IsRUFB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
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import { EggMultiInstanceCallbackPrototypeInfo, EggMultiInstancePrototypeInfo, EggProtoImplClass, EggPrototypeInfo, EggPrototypeName, InjectConstructorInfo, InjectObjectInfo, InjectType, MultiInstancePrototypeGetObjectsContext, MultiInstanceType, QualifierAttribute } from '@eggjs/tegg-types';
|
|
1
|
+
import { type EggMultiInstanceCallbackPrototypeInfo, type EggMultiInstancePrototypeInfo, type EggProtoImplClass, type EggPrototypeInfo, type EggPrototypeName, type InjectConstructorInfo, type InjectObjectInfo, InjectType, type MultiInstancePrototypeGetObjectsContext, MultiInstanceType, type QualifierAttribute } from '@eggjs/tegg-types';
|
|
2
2
|
export declare class PrototypeUtil {
|
|
3
|
-
static readonly IS_EGG_OBJECT_PROTOTYPE:
|
|
4
|
-
static readonly IS_EGG_OBJECT_MULTI_INSTANCE_PROTOTYPE:
|
|
5
|
-
static readonly FILE_PATH:
|
|
6
|
-
static readonly PROTOTYPE_PROPERTY:
|
|
7
|
-
static readonly MULTI_INSTANCE_PROTOTYPE_STATIC_PROPERTY:
|
|
8
|
-
static readonly MULTI_INSTANCE_PROTOTYPE_CALLBACK_PROPERTY:
|
|
9
|
-
static readonly INJECT_OBJECT_NAME_SET:
|
|
10
|
-
static readonly INJECT_TYPE:
|
|
11
|
-
static readonly INJECT_CONSTRUCTOR_NAME_SET:
|
|
12
|
-
static readonly CLAZZ_PROTO:
|
|
13
|
-
static readonly MULTI_INSTANCE_CONSTRUCTOR_INDEX:
|
|
14
|
-
static readonly MULTI_INSTANCE_CONSTRUCTOR_ATTRIBUTES:
|
|
3
|
+
static readonly IS_EGG_OBJECT_PROTOTYPE: symbol;
|
|
4
|
+
static readonly IS_EGG_OBJECT_MULTI_INSTANCE_PROTOTYPE: symbol;
|
|
5
|
+
static readonly FILE_PATH: symbol;
|
|
6
|
+
static readonly PROTOTYPE_PROPERTY: symbol;
|
|
7
|
+
static readonly MULTI_INSTANCE_PROTOTYPE_STATIC_PROPERTY: symbol;
|
|
8
|
+
static readonly MULTI_INSTANCE_PROTOTYPE_CALLBACK_PROPERTY: symbol;
|
|
9
|
+
static readonly INJECT_OBJECT_NAME_SET: symbol;
|
|
10
|
+
static readonly INJECT_TYPE: symbol;
|
|
11
|
+
static readonly INJECT_CONSTRUCTOR_NAME_SET: symbol;
|
|
12
|
+
static readonly CLAZZ_PROTO: symbol;
|
|
13
|
+
static readonly MULTI_INSTANCE_CONSTRUCTOR_INDEX: symbol;
|
|
14
|
+
static readonly MULTI_INSTANCE_CONSTRUCTOR_ATTRIBUTES: symbol;
|
|
15
15
|
/**
|
|
16
16
|
* Mark class is egg object prototype
|
|
17
17
|
* @param {Function} clazz -
|
|
@@ -103,6 +103,6 @@ export declare class PrototypeUtil {
|
|
|
103
103
|
static getInjectObjects(clazz: EggProtoImplClass): Array<InjectObjectInfo | InjectConstructorInfo>;
|
|
104
104
|
static getClazzProto(clazz: EggProtoImplClass): object | undefined;
|
|
105
105
|
static setClazzProto(clazz: EggProtoImplClass, proto: object): void;
|
|
106
|
-
static getDesignType(clazz: EggProtoImplClass, propKey?: PropertyKey): unknown;
|
|
106
|
+
static getDesignType(clazz: EggProtoImplClass, propKey?: PropertyKey): unknown | undefined;
|
|
107
107
|
static getDesignParamtypes(clazz: EggProtoImplClass, propKey?: PropertyKey): unknown[] | undefined;
|
|
108
108
|
}
|