@eggjs/core-decorator 3.62.0 → 4.0.0-beta.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/README.md +13 -1
  2. package/dist/decorator/ConfigSource.js +8 -0
  3. package/dist/decorator/ContextProto.js +10 -0
  4. package/dist/decorator/EggQualifier.js +8 -0
  5. package/dist/decorator/InitTypeQualifier.js +8 -0
  6. package/dist/{src/decorator → decorator}/Inject.d.ts +1 -1
  7. package/dist/decorator/Inject.js +102 -0
  8. package/dist/decorator/ModuleQualifier.js +8 -0
  9. package/dist/{src/decorator → decorator}/MultiInstanceInfo.d.ts +1 -1
  10. package/dist/decorator/MultiInstanceInfo.js +8 -0
  11. package/dist/decorator/MultiInstanceProto.js +36 -0
  12. package/dist/decorator/Prototype.js +29 -0
  13. package/dist/decorator/SingletonProto.js +10 -0
  14. package/dist/decorator/index.d.ts +10 -0
  15. package/dist/decorator/index.js +11 -0
  16. package/dist/index.d.ts +2 -13
  17. package/dist/index.js +4 -31
  18. package/dist/{src/util → util}/MetadataUtil.d.ts +0 -1
  19. package/dist/util/MetadataUtil.js +83 -0
  20. package/dist/{src/util → util}/PrototypeUtil.d.ts +7 -7
  21. package/dist/util/PrototypeUtil.js +249 -0
  22. package/dist/util/QualifierUtil.js +92 -0
  23. package/dist/util/index.d.ts +3 -0
  24. package/dist/util/index.js +4 -0
  25. package/package.json +26 -27
  26. package/dist/src/decorator/ConfigSource.js +0 -11
  27. package/dist/src/decorator/ContextProto.js +0 -13
  28. package/dist/src/decorator/EggQualifier.js +0 -11
  29. package/dist/src/decorator/InitTypeQualifier.js +0 -11
  30. package/dist/src/decorator/Inject.js +0 -100
  31. package/dist/src/decorator/ModuleQualifier.js +0 -11
  32. package/dist/src/decorator/MultiInstanceInfo.js +0 -11
  33. package/dist/src/decorator/MultiInstanceProto.js +0 -39
  34. package/dist/src/decorator/Prototype.js +0 -32
  35. package/dist/src/decorator/SingletonProto.js +0 -13
  36. package/dist/src/util/MetadataUtil.js +0 -88
  37. package/dist/src/util/PrototypeUtil.js +0 -255
  38. package/dist/src/util/QualifierUtil.js +0 -96
  39. /package/dist/{src/decorator → decorator}/ConfigSource.d.ts +0 -0
  40. /package/dist/{src/decorator → decorator}/ContextProto.d.ts +0 -0
  41. /package/dist/{src/decorator → decorator}/EggQualifier.d.ts +0 -0
  42. /package/dist/{src/decorator → decorator}/InitTypeQualifier.d.ts +0 -0
  43. /package/dist/{src/decorator → decorator}/ModuleQualifier.d.ts +0 -0
  44. /package/dist/{src/decorator → decorator}/MultiInstanceProto.d.ts +0 -0
  45. /package/dist/{src/decorator → decorator}/Prototype.d.ts +0 -0
  46. /package/dist/{src/decorator → decorator}/SingletonProto.d.ts +0 -0
  47. /package/dist/{src/util → 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
+ [![Node.js Version](https://img.shields.io/node/v/@eggjs/core-decorator.svg?style=flat)](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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29uZmlnU291cmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RlY29yYXRvci9Db25maWdTb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHbkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRWpELE1BQU0sVUFBVSxxQkFBcUIsQ0FBQyxVQUFrQjtJQUN0RCxPQUFPLFVBQVMsTUFBVyxFQUFFLFdBQXlCLEVBQUUsY0FBdUI7UUFDN0UsYUFBYSxDQUFDLGtCQUFrQixDQUFDLE1BQTJCLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSw4QkFBOEIsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUN6SSxDQUFDLENBQUM7QUFDSixDQUFDIn0=
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29udGV4dFByb3RvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RlY29yYXRvci9Db250ZXh0UHJvdG8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUdoRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsTUFBTSxVQUFVLFlBQVksQ0FBQyxNQUEyQjtJQUN0RCxPQUFPLFNBQVMsQ0FBQztRQUNmLFFBQVEsRUFBRSxjQUFjLENBQUMsT0FBTztRQUNoQyxXQUFXLEVBQUUsTUFBTSxFQUFFLFdBQVcsSUFBSSxXQUFXLENBQUMsT0FBTztRQUN2RCxHQUFHLE1BQU07S0FDVixDQUFDLENBQUM7QUFDTCxDQUFDIn0=
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWdnUXVhbGlmaWVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RlY29yYXRvci9FZ2dRdWFsaWZpZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHMUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRWpELE1BQU0sVUFBVSxZQUFZLENBQUMsT0FBZ0I7SUFDM0MsT0FBTyxVQUFTLE1BQVcsRUFBRSxXQUF5QixFQUFFLGNBQXVCO1FBQzdFLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxNQUEyQixFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUscUJBQXFCLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDN0gsQ0FBQyxDQUFDO0FBQ0osQ0FBQyJ9
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW5pdFR5cGVRdWFsaWZpZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGVjb3JhdG9yL0luaXRUeXBlUXVhbGlmaWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRy9ELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVqRCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsUUFBNEI7SUFDNUQsT0FBTyxVQUFTLE1BQVcsRUFBRSxXQUF5QixFQUFFLGNBQXVCO1FBQzdFLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxNQUEyQixFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsMEJBQTBCLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDbkksQ0FBQyxDQUFDO0FBQ0osQ0FBQyJ9
@@ -1,3 +1,3 @@
1
- import { InjectParams } from '@eggjs/tegg-types';
1
+ import { type InjectParams } from '@eggjs/tegg-types';
2
2
  export declare function Inject(param?: InjectParams | string): (target: any, propertyKey?: PropertyKey, parameterIndex?: number) => void;
3
3
  export declare function InjectOptional(param?: Omit<InjectParams, 'optional'> | string): (target: any, propertyKey?: PropertyKey, parameterIndex?: number) => void;
@@ -0,0 +1,102 @@
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
+ export function Inject(param) {
27
+ const injectParam = typeof param === 'string' ? { name: param } : param;
28
+ function propertyInject(target, propertyKey) {
29
+ let objName;
30
+ let initType;
31
+ if (!injectParam) {
32
+ // `@Inject() foo: FooService`
33
+ // try to read design:type from proto
34
+ const proto = PrototypeUtil.getDesignType(target, propertyKey);
35
+ const result = guessInjectInfo(target.constructor, propertyKey, proto);
36
+ objName = result.objName;
37
+ initType = result.initType;
38
+ }
39
+ else {
40
+ // params allow string or object
41
+ objName = injectParam?.name;
42
+ }
43
+ const injectObject = {
44
+ refName: propertyKey,
45
+ objName: objName || propertyKey,
46
+ };
47
+ if (injectParam?.optional) {
48
+ injectObject.optional = true;
49
+ }
50
+ PrototypeUtil.setInjectType(target.constructor, InjectType.PROPERTY);
51
+ PrototypeUtil.addInjectObject(target.constructor, injectObject);
52
+ debug('propertyInject, clazz: %s, propertyKey: %s, injectObject: %o', target.constructor.name, propertyKey, injectObject);
53
+ // console.trace();
54
+ if (initType) {
55
+ QualifierUtil.addProperQualifier(target.constructor, propertyKey, InitTypeQualifierAttribute, initType);
56
+ }
57
+ }
58
+ function constructorInject(target, parameterIndex) {
59
+ const argNames = ObjectUtils.getConstructorArgNameList(target);
60
+ const argName = argNames[parameterIndex];
61
+ let objName;
62
+ let initType;
63
+ if (!injectParam) {
64
+ // try to read proto from design:paramtypes
65
+ const protos = PrototypeUtil.getDesignParamtypes(target);
66
+ ({ objName, initType } = guessInjectInfo(target, argName, protos?.[parameterIndex]));
67
+ }
68
+ else {
69
+ // params allow string or object
70
+ objName = injectParam?.name;
71
+ }
72
+ const injectObject = {
73
+ refIndex: parameterIndex,
74
+ refName: argName,
75
+ objName: objName || argName,
76
+ };
77
+ if (injectParam?.optional) {
78
+ injectObject.optional = true;
79
+ }
80
+ PrototypeUtil.setInjectType(target, InjectType.CONSTRUCTOR);
81
+ PrototypeUtil.addInjectConstructor(target, injectObject);
82
+ if (initType) {
83
+ QualifierUtil.addProperQualifier(target, argName, InitTypeQualifierAttribute, initType);
84
+ }
85
+ }
86
+ return function (target, propertyKey, parameterIndex) {
87
+ if (typeof parameterIndex === 'undefined') {
88
+ propertyInject(target, propertyKey);
89
+ }
90
+ else {
91
+ constructorInject(target, parameterIndex);
92
+ }
93
+ };
94
+ }
95
+ export function InjectOptional(param) {
96
+ const injectParam = typeof param === 'string' ? { name: param } : param;
97
+ return Inject({
98
+ ...injectParam,
99
+ optional: true,
100
+ });
101
+ }
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW5qZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RlY29yYXRvci9JbmplY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVyQyxPQUFPLEVBS0wsVUFBVSxFQUNWLDBCQUEwQixHQUMzQixNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRWhFLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQywyQ0FBMkMsQ0FBQyxDQUFDO0FBRXBFLFNBQVMsZUFBZSxDQUFDLEtBQXdCLEVBQUUsSUFBaUIsRUFBRSxLQUFVO0lBQzlFLElBQUksT0FBZ0MsQ0FBQztJQUNyQyxJQUFJLFFBQTRCLENBQUM7SUFFakMsSUFBSSxPQUFPLEtBQUssS0FBSyxVQUFVLElBQUksS0FBSyxLQUFLLE1BQU0sRUFBRSxDQUFDO1FBQ3BELDZIQUE2SDtRQUM3SCxNQUFNLElBQUksR0FBRyxhQUFhLENBQUMsV0FBVyxDQUFDLEtBQTBCLENBQUMsQ0FBQztRQUNuRSxPQUFPLEdBQUcsSUFBSSxFQUFFLElBQUksQ0FBQztRQUNyQixxREFBcUQ7UUFDckQsSUFBSSxJQUFJLEVBQUUsUUFBUSxFQUFFLENBQUM7WUFDbkIsTUFBTSxjQUFjLEdBQUcsYUFBYSxDQUFDLGtCQUFrQixDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsMEJBQTBCLENBQUMsQ0FBQztZQUNqRyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQ3BCLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1lBQzNCLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU87UUFDTCxPQUFPO1FBQ1AsUUFBUTtLQUNULENBQUM7QUFDSixDQUFDO0FBRUQsTUFB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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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9kdWxlUXVhbGlmaWVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RlY29yYXRvci9Nb2R1bGVRdWFsaWZpZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHbkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRWpELE1BQU0sVUFBVSxlQUFlLENBQUMsVUFBa0I7SUFDaEQsT0FBTyxVQUFTLE1BQVcsRUFBRSxXQUF5QixFQUFFLGNBQXVCO1FBQzdFLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxNQUEyQixFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsOEJBQThCLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDekksQ0FBQyxDQUFDO0FBQ0osQ0FBQyJ9
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTXVsdGlJbnN0YW5jZUluZm8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGVjb3JhdG9yL011bHRpSW5zdGFuY2VJbmZvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVqRCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsVUFBZ0M7SUFDaEUsT0FBTyxVQUFTLE1BQVcsRUFBRSxZQUFxQyxFQUFFLGNBQXNCO1FBQ3hGLGFBQWEsQ0FBQyxnQ0FBZ0MsQ0FBQyxNQUFNLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFDdkUsYUFBYSxDQUFDLHFDQUFxQyxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsQ0FBQztJQUMxRSxDQUFDLENBQUM7QUFDSixDQUFDIn0=
@@ -0,0 +1,36 @@
1
+ import { ObjectInitType, AccessLevel, DEFAULT_PROTO_IMPL_TYPE } from '@eggjs/tegg-types';
2
+ import { StackUtil } from '@eggjs/tegg-common-util';
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
+ export function MultiInstanceProto(param) {
10
+ return function (clazz) {
11
+ PrototypeUtil.setIsEggMultiInstancePrototype(clazz);
12
+ if (param.objects) {
13
+ const property = {
14
+ ...DEFAULT_PARAMS,
15
+ ...param,
16
+ className: clazz.name,
17
+ };
18
+ PrototypeUtil.setMultiInstanceStaticProperty(clazz, property);
19
+ }
20
+ else if (param.getObjects) {
21
+ const property = {
22
+ ...DEFAULT_PARAMS,
23
+ ...param,
24
+ className: clazz.name,
25
+ };
26
+ PrototypeUtil.setMultiInstanceCallbackProperty(clazz, property);
27
+ }
28
+ // './tegg/core/common-util/src/StackUtil.ts',
29
+ // './tegg/core/core-decorator/src/decorator/Prototype.ts',
30
+ // './tegg/core/core-decorator/node_modules/_reflect-metadata@0.1.13@reflect-metadata/Reflect.js',
31
+ // './tegg/core/core-decorator/node_modules/_reflect-metadata@0.1.13@reflect-metadata/Reflect.js',
32
+ // './tegg/core/core-decorator/test/fixtures/decators/CacheService.ts',
33
+ PrototypeUtil.setFilePath(clazz, StackUtil.getCalleeFromStack(false, 4));
34
+ };
35
+ }
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTXVsdGlJbnN0YW5jZVByb3RvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RlY29yYXRvci9NdWx0aUluc3RhbmNlUHJvdG8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQVN6RixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFcEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRWpELE1BQU0sY0FBYyxHQUFHO0lBQ3JCLFFBQVEsRUFBRSxjQUFjLENBQUMsU0FBUztJQUNsQyxXQUFXLEVBQUUsV0FBVyxDQUFDLE9BQU87SUFDaEMsYUFBYSxFQUFFLHVCQUF1QjtDQUN2QyxDQUFDO0FBRUYsTUFBTSxVQUFVLGtCQUFrQixDQUFDLEtBQW1DO0lBQ3BFLE9BQU8sVUFBUyxLQUF3QjtRQUN0QyxhQUFhLENBQUMsOEJBQThCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDcEQsSUFBSyxLQUE0QyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQzFELE1BQU0sUUFBUSxHQUFrQztnQkFDOUMsR0FBRyxjQUFjO2dCQUNqQixHQUFHLEtBQTJDO2dCQUM5QyxTQUFTLEVBQUUsS0FBSyxDQUFDLElBQUk7YUFDdEIsQ0FBQztZQUNGLGFBQWEsQ0FBQyw4QkFBOEIsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDaEUsQ0FBQzthQUFNLElBQUssS0FBOEMsQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUN0RSxNQUFNLFFBQVEsR0FBMEM7Z0JBQ3RELEdBQUcsY0FBYztnQkFDakIsR0FBRyxLQUE2QztnQkFDaEQsU0FBUyxFQUFFLEtBQUssQ0FBQyxJQUFJO2FBQ3RCLENBQUM7WUFDRixhQUFhLENBQUMsZ0NBQWdDLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ2xFLENBQUM7UUFFRCw4Q0FBOEM7UUFDOUMsMkRBQTJEO1FBQzNELGtHQUFrRztRQUNsRyxrR0FBa0c7UUFDbEcsdUVBQXVFO1FBQ3ZFLGFBQWEsQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMzRSxDQUFDLENBQUM7QUFDSixDQUFDIn0=
@@ -0,0 +1,29 @@
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
+ export function Prototype(param) {
10
+ return function (clazz) {
11
+ PrototypeUtil.setIsEggPrototype(clazz);
12
+ const property = {
13
+ ...DEFAULT_PARAMS,
14
+ ...param,
15
+ className: clazz.name,
16
+ };
17
+ if (!property.name) {
18
+ property.name = NameUtil.getClassName(clazz);
19
+ }
20
+ PrototypeUtil.setProperty(clazz, property);
21
+ // './tegg/core/common-util/src/StackUtil.ts',
22
+ // './tegg/core/core-decorator/src/decorator/Prototype.ts',
23
+ // './tegg/core/core-decorator/node_modules/_reflect-metadata@0.1.13@reflect-metadata/Reflect.js',
24
+ // './tegg/core/core-decorator/node_modules/_reflect-metadata@0.1.13@reflect-metadata/Reflect.js',
25
+ // './tegg/core/core-decorator/test/fixtures/decators/CacheService.ts',
26
+ PrototypeUtil.setFilePath(clazz, StackUtil.getCalleeFromStack(false, 4));
27
+ };
28
+ }
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHJvdG90eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RlY29yYXRvci9Qcm90b3R5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsV0FBVyxFQUFFLHVCQUF1QixFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBR3pGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVqRCxNQUFNLGNBQWMsR0FBRztJQUNyQixRQUFRLEVBQUUsY0FBYyxDQUFDLFNBQVM7SUFDbEMsV0FBVyxFQUFFLFdBQVcsQ0FBQyxPQUFPO0lBQ2hDLGFBQWEsRUFBRSx1QkFBdUI7Q0FDdkMsQ0FBQztBQUVGLE1BQU0sVUFBVSxTQUFTLENBQUMsS0FBdUI7SUFDL0MsT0FBTyxVQUFTLEtBQXdCO1FBQ3RDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QyxNQUFNLFFBQVEsR0FBOEI7WUFDMUMsR0FBRyxjQUFjO1lBQ2pCLEdBQUcsS0FBSztZQUNSLFNBQVMsRUFBRSxLQUFLLENBQUMsSUFBSTtTQUN0QixDQUFDO1FBQ0YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNuQixRQUFRLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0MsQ0FBQztRQUNELGFBQWEsQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLFFBQTRCLENBQUMsQ0FBQztRQUUvRCw4Q0FBOEM7UUFDOUMsMkRBQTJEO1FBQzNELGtHQUFrRztRQUNsRyxrR0FBa0c7UUFDbEcsdUVBQXVFO1FBQ3ZFLGFBQWEsQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMzRSxDQUFDLENBQUM7QUFDSixDQUFDIn0=
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2luZ2xldG9uUHJvdG8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGVjb3JhdG9yL1NpbmdsZXRvblByb3RvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHaEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE1BQU0sVUFBVSxjQUFjLENBQUMsTUFBNkI7SUFDMUQsT0FBTyxTQUFTLENBQUM7UUFDZixRQUFRLEVBQUUsY0FBYyxDQUFDLFNBQVM7UUFDbEMsV0FBVyxFQUFFLE1BQU0sRUFBRSxXQUFXLElBQUksV0FBVyxDQUFDLE9BQU87UUFDdkQsR0FBRyxNQUFNO0tBQ1YsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyJ9
@@ -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 CHANGED
@@ -1,14 +1,3 @@
1
1
  export * from '@eggjs/tegg-types/core-decorator';
2
- export * from './src/decorator/Inject';
3
- export * from './src/decorator/Prototype';
4
- export * from './src/decorator/InitTypeQualifier';
5
- export * from './src/decorator/ModuleQualifier';
6
- export * from './src/decorator/ContextProto';
7
- export * from './src/decorator/SingletonProto';
8
- export * from './src/decorator/EggQualifier';
9
- export * from './src/decorator/MultiInstanceProto';
10
- export * from './src/decorator/MultiInstanceInfo';
11
- export * from './src/decorator/ConfigSource';
12
- export * from './src/util/MetadataUtil';
13
- export * from './src/util/PrototypeUtil';
14
- export * from './src/util/QualifierUtil';
2
+ export * from './decorator/index.ts';
3
+ export * from './util/index.ts';
package/dist/index.js CHANGED
@@ -1,31 +1,4 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("@eggjs/tegg-types/core-decorator"), exports);
18
- __exportStar(require("./src/decorator/Inject"), exports);
19
- __exportStar(require("./src/decorator/Prototype"), exports);
20
- __exportStar(require("./src/decorator/InitTypeQualifier"), exports);
21
- __exportStar(require("./src/decorator/ModuleQualifier"), exports);
22
- __exportStar(require("./src/decorator/ContextProto"), exports);
23
- __exportStar(require("./src/decorator/SingletonProto"), exports);
24
- __exportStar(require("./src/decorator/EggQualifier"), exports);
25
- __exportStar(require("./src/decorator/MultiInstanceProto"), exports);
26
- __exportStar(require("./src/decorator/MultiInstanceInfo"), exports);
27
- __exportStar(require("./src/decorator/ConfigSource"), exports);
28
- __exportStar(require("./src/util/MetadataUtil"), exports);
29
- __exportStar(require("./src/util/PrototypeUtil"), exports);
30
- __exportStar(require("./src/util/QualifierUtil"), exports);
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsbUVBQWlEO0FBQ2pELHlEQUF1QztBQUN2Qyw0REFBMEM7QUFDMUMsb0VBQWtEO0FBQ2xELGtFQUFnRDtBQUNoRCwrREFBNkM7QUFDN0MsaUVBQStDO0FBQy9DLCtEQUE2QztBQUM3QyxxRUFBbUQ7QUFDbkQsb0VBQWtEO0FBQ2xELCtEQUE2QztBQUU3QywwREFBd0M7QUFDeEMsMkRBQXlDO0FBQ3pDLDJEQUF5QyJ9
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==
@@ -1,4 +1,3 @@
1
- import 'reflect-metadata';
2
1
  import type { EggProtoImplClass, MetaDataKey } from '@eggjs/tegg-types';
3
2
  export declare class MetadataUtil {
4
3
  static deleteMetaData(metadataKey: MetaDataKey, clazz: EggProtoImplClass): void;
@@ -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,4 +1,4 @@
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
3
  static readonly IS_EGG_OBJECT_PROTOTYPE: unique symbol;
4
4
  static readonly IS_EGG_OBJECT_MULTI_INSTANCE_PROTOTYPE: unique symbol;
@@ -60,9 +60,9 @@ export declare class PrototypeUtil {
60
60
  * @return {EggPrototypeInfo} -
61
61
  */
62
62
  static getProperty(clazz: EggProtoImplClass): EggPrototypeInfo | undefined;
63
- static getInitType(clazz: EggProtoImplClass, ctx: MultiInstancePrototypeGetObjectsContext): string | undefined;
64
- static getAccessLevel(clazz: EggProtoImplClass, ctx: MultiInstancePrototypeGetObjectsContext): string | undefined;
65
- static getObjNames(clazz: EggProtoImplClass, ctx: MultiInstancePrototypeGetObjectsContext): EggPrototypeName[];
63
+ static getInitType(clazz: EggProtoImplClass, ctx: MultiInstancePrototypeGetObjectsContext): Promise<string | undefined>;
64
+ static getAccessLevel(clazz: EggProtoImplClass, ctx: MultiInstancePrototypeGetObjectsContext): Promise<string | undefined>;
65
+ static getObjNames(clazz: EggProtoImplClass, ctx: MultiInstancePrototypeGetObjectsContext): Promise<EggPrototypeName[]>;
66
66
  /**
67
67
  * set class property
68
68
  * @param {EggProtoImplClass} clazz -
@@ -85,13 +85,13 @@ export declare class PrototypeUtil {
85
85
  * @param {EggProtoImplClass} clazz -
86
86
  * @param {MultiInstancePrototypeGetObjectsContext} ctx -
87
87
  */
88
- static getDynamicMultiInstanceProperty(clazz: EggProtoImplClass, ctx: MultiInstancePrototypeGetObjectsContext): EggMultiInstancePrototypeInfo | undefined;
88
+ static getDynamicMultiInstanceProperty(clazz: EggProtoImplClass, ctx: MultiInstancePrototypeGetObjectsContext): Promise<EggMultiInstancePrototypeInfo | undefined>;
89
89
  /**
90
90
  * get class property
91
91
  * @param {EggProtoImplClass} clazz -
92
92
  * @param {MultiInstancePrototypeGetObjectsContext} ctx -
93
93
  */
94
- static getMultiInstanceProperty(clazz: EggProtoImplClass, ctx: MultiInstancePrototypeGetObjectsContext): EggMultiInstancePrototypeInfo | undefined;
94
+ static getMultiInstanceProperty(clazz: EggProtoImplClass, ctx: MultiInstancePrototypeGetObjectsContext): Promise<EggMultiInstancePrototypeInfo | undefined>;
95
95
  static setMultiInstanceConstructorAttributes(clazz: EggProtoImplClass, attributes: QualifierAttribute[]): void;
96
96
  static getMultiInstanceConstructorAttributes(clazz: EggProtoImplClass): QualifierAttribute[];
97
97
  static setMultiInstanceConstructorIndex(clazz: EggProtoImplClass, index: number): void;
@@ -104,5 +104,5 @@ export declare class PrototypeUtil {
104
104
  static getClazzProto(clazz: EggProtoImplClass): object | undefined;
105
105
  static setClazzProto(clazz: EggProtoImplClass, proto: object): void;
106
106
  static getDesignType(clazz: EggProtoImplClass, propKey?: PropertyKey): unknown;
107
- static getDesignParamtypes(clazz: EggProtoImplClass, propKey?: PropertyKey): unknown[] | undefined;
107
+ static getDesignParamtypes(clazz: EggProtoImplClass, propKey?: PropertyKey): unknown[];
108
108
  }