@eggjs/core-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.
Files changed (54) hide show
  1. package/README.md +13 -1
  2. package/dist/decorator/ConfigSource.js +8 -0
  3. package/{src → dist}/decorator/ContextProto.d.ts +2 -1
  4. package/dist/decorator/ContextProto.js +10 -0
  5. package/dist/decorator/EggQualifier.js +8 -0
  6. package/dist/decorator/InitTypeQualifier.js +8 -0
  7. package/dist/decorator/Inject.d.ts +14 -0
  8. package/dist/decorator/Inject.js +112 -0
  9. package/dist/decorator/ModuleQualifier.js +8 -0
  10. package/{src → dist}/decorator/MultiInstanceInfo.d.ts +1 -1
  11. package/dist/decorator/MultiInstanceInfo.js +8 -0
  12. package/{src → dist}/decorator/MultiInstanceProto.js +2 -2
  13. package/dist/decorator/Prototype.d.ts +8 -0
  14. package/dist/decorator/Prototype.js +34 -0
  15. package/{src → dist}/decorator/SingletonProto.d.ts +2 -1
  16. package/dist/decorator/SingletonProto.js +10 -0
  17. package/dist/decorator/index.d.ts +10 -0
  18. package/dist/decorator/index.js +11 -0
  19. package/dist/index.d.ts +3 -0
  20. package/dist/index.js +4 -0
  21. package/dist/util/MetadataUtil.js +83 -0
  22. package/{src → dist}/util/PrototypeUtil.d.ts +14 -14
  23. package/dist/util/PrototypeUtil.js +251 -0
  24. package/{src → dist}/util/QualifierUtil.d.ts +1 -1
  25. package/dist/util/QualifierUtil.js +92 -0
  26. package/dist/util/index.d.ts +3 -0
  27. package/dist/util/index.js +4 -0
  28. package/package.json +27 -29
  29. package/src/decorator/ConfigSource.js +0 -8
  30. package/src/decorator/ContextProto.js +0 -10
  31. package/src/decorator/EggQualifier.js +0 -8
  32. package/src/decorator/InitTypeQualifier.js +0 -8
  33. package/src/decorator/Inject.d.ts +0 -3
  34. package/src/decorator/Inject.js +0 -95
  35. package/src/decorator/ModuleQualifier.js +0 -8
  36. package/src/decorator/MultiInstanceInfo.js +0 -8
  37. package/src/decorator/Prototype.d.ts +0 -2
  38. package/src/decorator/Prototype.js +0 -29
  39. package/src/decorator/SingletonProto.js +0 -10
  40. package/src/decorator/index.d.ts +0 -10
  41. package/src/decorator/index.js +0 -11
  42. package/src/index.d.ts +0 -3
  43. package/src/index.js +0 -4
  44. package/src/util/MetadataUtil.js +0 -83
  45. package/src/util/PrototypeUtil.js +0 -249
  46. package/src/util/QualifierUtil.js +0 -95
  47. package/src/util/index.d.ts +0 -3
  48. package/src/util/index.js +0 -4
  49. /package/{src → dist}/decorator/ConfigSource.d.ts +0 -0
  50. /package/{src → dist}/decorator/EggQualifier.d.ts +0 -0
  51. /package/{src → dist}/decorator/InitTypeQualifier.d.ts +0 -0
  52. /package/{src → dist}/decorator/ModuleQualifier.d.ts +0 -0
  53. /package/{src → dist}/decorator/MultiInstanceProto.d.ts +0 -0
  54. /package/{src → dist}/util/MetadataUtil.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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29uZmlnU291cmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RlY29yYXRvci9Db25maWdTb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHbkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRWpELE1BQU0sVUFBVSxxQkFBcUIsQ0FBQyxVQUFrQjtJQUN0RCxPQUFPLFVBQVUsTUFBVyxFQUFFLFdBQXlCLEVBQUUsY0FBdUI7UUFDOUUsYUFBYSxDQUFDLGtCQUFrQixDQUM5QixNQUEyQixFQUMzQixXQUFXLEVBQ1gsY0FBYyxFQUNkLDhCQUE4QixFQUM5QixVQUFVLENBQ1gsQ0FBQztJQUNKLENBQUMsQ0FBQztBQUNKLENBQUMifQ==
@@ -1,2 +1,3 @@
1
1
  import type { ContextProtoParams } from '@eggjs/tegg-types';
2
- export declare function ContextProto(params?: ContextProtoParams): (clazz: import("@eggjs/tegg-types").EggProtoImplClass) => void;
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 '../util/index.js';
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTXVsdGlJbnN0YW5jZVByb3RvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiTXVsdGlJbnN0YW5jZVByb3RvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFTekYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVqRCxNQUFNLGNBQWMsR0FBRztJQUNyQixRQUFRLEVBQUUsY0FBYyxDQUFDLFNBQVM7SUFDbEMsV0FBVyxFQUFFLFdBQVcsQ0FBQyxPQUFPO0lBQ2hDLGFBQWEsRUFBRSx1QkFBdUI7Q0FDdkMsQ0FBQztBQUVGLE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxLQUFtQztJQUNwRSxPQUFPLFVBQVMsS0FBd0I7UUFDdEMsYUFBYSxDQUFDLDhCQUE4QixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BELElBQUssS0FBNEMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUMxRCxNQUFNLFFBQVEsR0FBa0M7Z0JBQzlDLEdBQUcsY0FBYztnQkFDakIsR0FBRyxLQUEyQztnQkFDOUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxJQUFJO2FBQ3RCLENBQUM7WUFDRixhQUFhLENBQUMsOEJBQThCLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ2hFLENBQUM7YUFBTSxJQUFLLEtBQThDLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDdEUsTUFBTSxRQUFRLEdBQTBDO2dCQUN0RCxHQUFHLGNBQWM7Z0JBQ2pCLEdBQUcsS0FBNkM7Z0JBQ2hELFNBQVMsRUFBRSxLQUFLLENBQUMsSUFBSTthQUN0QixDQUFDO1lBQ0YsYUFBYSxDQUFDLGdDQUFnQyxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNsRSxDQUFDO1FBRUQsOENBQThDO1FBQzlDLDJEQUEyRDtRQUMzRCxrR0FBa0c7UUFDbEcsa0dBQWtHO1FBQ2xHLHVFQUF1RTtRQUN2RSxhQUFhLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsa0JBQWtCLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDM0UsQ0FBQyxDQUFDO0FBQ0osQ0FBQyJ9
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
- export declare function SingletonProto(params?: SingletonProtoParams): (clazz: import("@eggjs/tegg-types").EggProtoImplClass) => void;
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=
@@ -0,0 +1,3 @@
1
+ export * from '@eggjs/tegg-types/core-decorator';
2
+ export * from './decorator/index.ts';
3
+ export * from './util/index.ts';
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: unique symbol;
4
- static readonly IS_EGG_OBJECT_MULTI_INSTANCE_PROTOTYPE: unique symbol;
5
- static readonly FILE_PATH: unique symbol;
6
- static readonly PROTOTYPE_PROPERTY: unique symbol;
7
- static readonly MULTI_INSTANCE_PROTOTYPE_STATIC_PROPERTY: unique symbol;
8
- static readonly MULTI_INSTANCE_PROTOTYPE_CALLBACK_PROPERTY: unique symbol;
9
- static readonly INJECT_OBJECT_NAME_SET: unique symbol;
10
- static readonly INJECT_TYPE: unique symbol;
11
- static readonly INJECT_CONSTRUCTOR_NAME_SET: unique symbol;
12
- static readonly CLAZZ_PROTO: unique symbol;
13
- static readonly MULTI_INSTANCE_CONSTRUCTOR_INDEX: unique symbol;
14
- static readonly MULTI_INSTANCE_CONSTRUCTOR_ATTRIBUTES: unique symbol;
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
  }