@eggjs/core-decorator 4.0.0-beta.34 → 4.0.0-beta.36
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/decorator/ConfigSource.d.ts +4 -1
- package/dist/decorator/ConfigSource.js +12 -7
- package/dist/decorator/ContextProto.d.ts +7 -3
- package/dist/decorator/ContextProto.js +12 -8
- package/dist/decorator/EggQualifier.d.ts +6 -2
- package/dist/decorator/EggQualifier.js +12 -7
- package/dist/decorator/InitTypeQualifier.d.ts +6 -2
- package/dist/decorator/InitTypeQualifier.js +12 -7
- package/dist/decorator/Inject.d.ts +16 -12
- package/dist/decorator/Inject.js +81 -106
- package/dist/decorator/ModuleQualifier.d.ts +4 -1
- package/dist/decorator/ModuleQualifier.js +12 -7
- package/dist/decorator/MultiInstanceInfo.d.ts +6 -2
- package/dist/decorator/MultiInstanceInfo.js +12 -7
- package/dist/decorator/MultiInstanceProto.d.ts +6 -2
- package/dist/decorator/MultiInstanceProto.js +32 -33
- package/dist/decorator/Prototype.d.ts +11 -7
- package/dist/decorator/Prototype.js +28 -30
- package/dist/decorator/SingletonProto.d.ts +7 -3
- package/dist/decorator/SingletonProto.js +12 -8
- package/dist/decorator/index.d.ts +10 -10
- package/dist/decorator/index.js +12 -11
- package/dist/index.d.ts +17 -3
- package/dist/index.js +19 -4
- package/dist/util/MetadataUtil.d.ts +38 -34
- package/dist/util/MetadataUtil.js +75 -83
- package/dist/util/PrototypeUtil.d.ts +111 -107
- package/dist/util/PrototypeUtil.js +215 -250
- package/dist/util/QualifierUtil.d.ts +16 -12
- package/dist/util/QualifierUtil.js +66 -91
- package/dist/util/index.d.ts +3 -3
- package/dist/util/index.js +5 -4
- package/package.json +25 -29
|
@@ -1,10 +1,14 @@
|
|
|
1
|
-
import { AccessLevel, ObjectInitType } from '@eggjs/tegg-types';
|
|
2
1
|
import { Prototype } from "./Prototype.js";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
2
|
+
import { AccessLevel, ObjectInitType } from "@eggjs/tegg-types";
|
|
3
|
+
|
|
4
|
+
//#region src/decorator/SingletonProto.ts
|
|
5
|
+
function SingletonProto(params) {
|
|
6
|
+
return Prototype({
|
|
7
|
+
initType: ObjectInitType.SINGLETON,
|
|
8
|
+
accessLevel: params?.accessLevel || AccessLevel.PRIVATE,
|
|
9
|
+
...params
|
|
10
|
+
});
|
|
9
11
|
}
|
|
10
|
-
|
|
12
|
+
|
|
13
|
+
//#endregion
|
|
14
|
+
export { SingletonProto };
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
1
|
+
import { ConfigSourceQualifier } from "./ConfigSource.js";
|
|
2
|
+
import { Prototype, PrototypeDecorator } from "./Prototype.js";
|
|
3
|
+
import { ContextProto } from "./ContextProto.js";
|
|
4
|
+
import { EggQualifier } from "./EggQualifier.js";
|
|
5
|
+
import { InitTypeQualifier } from "./InitTypeQualifier.js";
|
|
6
|
+
import { Inject, InjectDecorator, InjectOptional } from "./Inject.js";
|
|
7
|
+
import { ModuleQualifier } from "./ModuleQualifier.js";
|
|
8
|
+
import { MultiInstanceInfo } from "./MultiInstanceInfo.js";
|
|
9
|
+
import { MultiInstanceProto } from "./MultiInstanceProto.js";
|
|
10
|
+
import { SingletonProto } from "./SingletonProto.js";
|
package/dist/decorator/index.js
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
1
|
+
import { ConfigSourceQualifier } from "./ConfigSource.js";
|
|
2
|
+
import { Prototype } from "./Prototype.js";
|
|
3
|
+
import { ContextProto } from "./ContextProto.js";
|
|
4
|
+
import { EggQualifier } from "./EggQualifier.js";
|
|
5
|
+
import { InitTypeQualifier } from "./InitTypeQualifier.js";
|
|
6
|
+
import { Inject, InjectOptional } from "./Inject.js";
|
|
7
|
+
import { ModuleQualifier } from "./ModuleQualifier.js";
|
|
8
|
+
import { MultiInstanceInfo } from "./MultiInstanceInfo.js";
|
|
9
|
+
import { MultiInstanceProto } from "./MultiInstanceProto.js";
|
|
10
|
+
import { SingletonProto } from "./SingletonProto.js";
|
|
11
|
+
|
|
12
|
+
export { };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import { ConfigSourceQualifier } from "./decorator/ConfigSource.js";
|
|
2
|
+
import { Prototype, PrototypeDecorator } from "./decorator/Prototype.js";
|
|
3
|
+
import { ContextProto } from "./decorator/ContextProto.js";
|
|
4
|
+
import { EggQualifier } from "./decorator/EggQualifier.js";
|
|
5
|
+
import { InitTypeQualifier } from "./decorator/InitTypeQualifier.js";
|
|
6
|
+
import { Inject, InjectDecorator, InjectOptional } from "./decorator/Inject.js";
|
|
7
|
+
import { ModuleQualifier } from "./decorator/ModuleQualifier.js";
|
|
8
|
+
import { MultiInstanceInfo } from "./decorator/MultiInstanceInfo.js";
|
|
9
|
+
import { MultiInstanceProto } from "./decorator/MultiInstanceProto.js";
|
|
10
|
+
import { SingletonProto } from "./decorator/SingletonProto.js";
|
|
11
|
+
import "./decorator/index.js";
|
|
12
|
+
import { MetadataUtil } from "./util/MetadataUtil.js";
|
|
13
|
+
import { PrototypeUtil } from "./util/PrototypeUtil.js";
|
|
14
|
+
import { QualifierUtil } from "./util/QualifierUtil.js";
|
|
15
|
+
import "./util/index.js";
|
|
16
|
+
export * from "@eggjs/tegg-types/core-decorator";
|
|
17
|
+
export { ConfigSourceQualifier, ContextProto, EggQualifier, InitTypeQualifier, Inject, InjectDecorator, InjectOptional, MetadataUtil, ModuleQualifier, MultiInstanceInfo, MultiInstanceProto, Prototype, PrototypeDecorator, PrototypeUtil, QualifierUtil, SingletonProto };
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import { MetadataUtil } from "./util/MetadataUtil.js";
|
|
2
|
+
import { PrototypeUtil } from "./util/PrototypeUtil.js";
|
|
3
|
+
import { QualifierUtil } from "./util/QualifierUtil.js";
|
|
4
|
+
import "./util/index.js";
|
|
5
|
+
import { ConfigSourceQualifier } from "./decorator/ConfigSource.js";
|
|
6
|
+
import { Prototype } from "./decorator/Prototype.js";
|
|
7
|
+
import { ContextProto } from "./decorator/ContextProto.js";
|
|
8
|
+
import { EggQualifier } from "./decorator/EggQualifier.js";
|
|
9
|
+
import { InitTypeQualifier } from "./decorator/InitTypeQualifier.js";
|
|
10
|
+
import { Inject, InjectOptional } from "./decorator/Inject.js";
|
|
11
|
+
import { ModuleQualifier } from "./decorator/ModuleQualifier.js";
|
|
12
|
+
import { MultiInstanceInfo } from "./decorator/MultiInstanceInfo.js";
|
|
13
|
+
import { MultiInstanceProto } from "./decorator/MultiInstanceProto.js";
|
|
14
|
+
import { SingletonProto } from "./decorator/SingletonProto.js";
|
|
15
|
+
import "./decorator/index.js";
|
|
16
|
+
|
|
17
|
+
export * from "@eggjs/tegg-types/core-decorator"
|
|
18
|
+
|
|
19
|
+
export { ConfigSourceQualifier, ContextProto, EggQualifier, InitTypeQualifier, Inject, InjectOptional, MetadataUtil, ModuleQualifier, MultiInstanceInfo, MultiInstanceProto, Prototype, PrototypeUtil, QualifierUtil, SingletonProto };
|
|
@@ -1,35 +1,39 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
1
|
+
import { EggProtoImplClass, MetaDataKey } from "@eggjs/tegg-types";
|
|
2
|
+
|
|
3
|
+
//#region src/util/MetadataUtil.d.ts
|
|
4
|
+
declare class MetadataUtil {
|
|
5
|
+
static deleteMetaData(metadataKey: MetaDataKey, clazz: EggProtoImplClass): void;
|
|
6
|
+
static defineMetaData<T>(metadataKey: MetaDataKey, metadataValue: T, clazz: EggProtoImplClass): void;
|
|
7
|
+
static getOwnMetaData<T>(metadataKey: MetaDataKey, clazz: EggProtoImplClass): T | undefined;
|
|
8
|
+
static hasMetaData(metadataKey: MetaDataKey, clazz: EggProtoImplClass, propKey?: PropertyKey): boolean;
|
|
9
|
+
static getMetaData<T>(metadataKey: MetaDataKey, clazz: EggProtoImplClass, propKey?: PropertyKey): T | undefined;
|
|
10
|
+
static getBooleanMetaData(metadataKey: MetaDataKey, clazz: EggProtoImplClass): boolean;
|
|
11
|
+
static getOwnBooleanMetaData(metadataKey: MetaDataKey, clazz: EggProtoImplClass): boolean;
|
|
12
|
+
static getArrayMetaData<T>(metadataKey: MetaDataKey, clazz: EggProtoImplClass): Array<T>;
|
|
13
|
+
/**
|
|
14
|
+
* init array metadata
|
|
15
|
+
* not inherit parent metadata
|
|
16
|
+
* return value true means use default value
|
|
17
|
+
* return value false means use map value
|
|
18
|
+
*/
|
|
19
|
+
static initArrayMetaData<T>(metadataKey: MetaDataKey, clazz: EggProtoImplClass, defaultValue: Array<T>): Array<T>;
|
|
20
|
+
/**
|
|
21
|
+
* init own array metadata
|
|
22
|
+
* if parent metadata exists, inherit
|
|
23
|
+
* if parent metadata not exits, use default value
|
|
24
|
+
* return value true means use default value
|
|
25
|
+
* return value false means use map value
|
|
26
|
+
*/
|
|
27
|
+
static initOwnArrayMetaData<T>(metadataKey: MetaDataKey, clazz: EggProtoImplClass, defaultValue: Array<T>): Array<T>;
|
|
28
|
+
/**
|
|
29
|
+
* init own map metadata
|
|
30
|
+
* if parent metadata exists, inherit
|
|
31
|
+
* if parent metadata not exits, use default value
|
|
32
|
+
* return value true means use default value
|
|
33
|
+
* return value false means use map value
|
|
34
|
+
*/
|
|
35
|
+
static initOwnMapMetaData<K, V>(metadataKey: MetaDataKey, clazz: EggProtoImplClass, defaultValue: Map<K, V>): Map<K, V>;
|
|
36
|
+
static getOrStoreMetaData<T>(metadataKey: MetaDataKey, clazz: EggProtoImplClass, metadataValue: T): T;
|
|
35
37
|
}
|
|
38
|
+
//#endregion
|
|
39
|
+
export { MetadataUtil };
|
|
@@ -1,83 +1,75 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
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
|
+
//#region src/util/MetadataUtil.ts
|
|
2
|
+
var MetadataUtil = class {
|
|
3
|
+
static deleteMetaData(metadataKey, clazz) {
|
|
4
|
+
Reflect.deleteMetadata(metadataKey, clazz);
|
|
5
|
+
}
|
|
6
|
+
static defineMetaData(metadataKey, metadataValue, clazz) {
|
|
7
|
+
Reflect.defineMetadata(metadataKey, metadataValue, clazz);
|
|
8
|
+
}
|
|
9
|
+
static getOwnMetaData(metadataKey, clazz) {
|
|
10
|
+
return Reflect.getOwnMetadata(metadataKey, clazz);
|
|
11
|
+
}
|
|
12
|
+
static hasMetaData(metadataKey, clazz, propKey) {
|
|
13
|
+
return Reflect.hasMetadata(metadataKey, clazz, propKey);
|
|
14
|
+
}
|
|
15
|
+
static getMetaData(metadataKey, clazz, propKey) {
|
|
16
|
+
return Reflect.getMetadata(metadataKey, clazz, propKey);
|
|
17
|
+
}
|
|
18
|
+
static getBooleanMetaData(metadataKey, clazz) {
|
|
19
|
+
return !!this.getMetaData(metadataKey, clazz);
|
|
20
|
+
}
|
|
21
|
+
static getOwnBooleanMetaData(metadataKey, clazz) {
|
|
22
|
+
return !!this.getOwnMetaData(metadataKey, clazz);
|
|
23
|
+
}
|
|
24
|
+
static getArrayMetaData(metadataKey, clazz) {
|
|
25
|
+
return this.getMetaData(metadataKey, clazz) || [];
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* init array metadata
|
|
29
|
+
* not inherit parent metadata
|
|
30
|
+
* return value true means use default value
|
|
31
|
+
* return value false means use map value
|
|
32
|
+
*/
|
|
33
|
+
static initArrayMetaData(metadataKey, clazz, defaultValue) {
|
|
34
|
+
if (!this.getOwnMetaData(metadataKey, clazz)) this.defineMetaData(metadataKey, defaultValue, clazz);
|
|
35
|
+
return this.getOwnMetaData(metadataKey, clazz);
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* init own array metadata
|
|
39
|
+
* if parent metadata exists, inherit
|
|
40
|
+
* if parent metadata not exits, use default value
|
|
41
|
+
* return value true means use default value
|
|
42
|
+
* return value false means use map value
|
|
43
|
+
*/
|
|
44
|
+
static initOwnArrayMetaData(metadataKey, clazz, defaultValue) {
|
|
45
|
+
if (!this.getOwnMetaData(metadataKey, clazz)) {
|
|
46
|
+
const selfValue = (this.getMetaData(metadataKey, clazz) || defaultValue).slice();
|
|
47
|
+
this.defineMetaData(metadataKey, selfValue, clazz);
|
|
48
|
+
}
|
|
49
|
+
return this.getOwnMetaData(metadataKey, clazz);
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* init own map metadata
|
|
53
|
+
* if parent metadata exists, inherit
|
|
54
|
+
* if parent metadata not exits, use default value
|
|
55
|
+
* return value true means use default value
|
|
56
|
+
* return value false means use map value
|
|
57
|
+
*/
|
|
58
|
+
static initOwnMapMetaData(metadataKey, clazz, defaultValue) {
|
|
59
|
+
if (!this.getOwnMetaData(metadataKey, clazz)) {
|
|
60
|
+
const parentValue = this.getMetaData(metadataKey, clazz);
|
|
61
|
+
const selfValue = /* @__PURE__ */ new Map();
|
|
62
|
+
const ownDefaultValue = parentValue || defaultValue;
|
|
63
|
+
for (const [k, v] of ownDefaultValue) selfValue.set(k, v);
|
|
64
|
+
this.defineMetaData(metadataKey, selfValue, clazz);
|
|
65
|
+
}
|
|
66
|
+
return this.getOwnMetaData(metadataKey, clazz);
|
|
67
|
+
}
|
|
68
|
+
static getOrStoreMetaData(metadataKey, clazz, metadataValue) {
|
|
69
|
+
if (!Reflect.hasMetadata(metadataKey, clazz)) Reflect.defineMetadata(metadataKey, metadataValue, clazz);
|
|
70
|
+
return Reflect.getMetadata(metadataKey, clazz);
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
//#endregion
|
|
75
|
+
export { MetadataUtil };
|
|
@@ -1,108 +1,112 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
1
|
+
import { EggMultiInstanceCallbackPrototypeInfo, EggMultiInstancePrototypeInfo, EggProtoImplClass, EggPrototypeInfo, EggPrototypeName, InjectConstructorInfo, InjectObjectInfo, InjectType, MultiInstancePrototypeGetObjectsContext, MultiInstanceType, QualifierAttribute } from "@eggjs/tegg-types";
|
|
2
|
+
|
|
3
|
+
//#region src/util/PrototypeUtil.d.ts
|
|
4
|
+
declare class PrototypeUtil {
|
|
5
|
+
static readonly IS_EGG_OBJECT_PROTOTYPE: symbol;
|
|
6
|
+
static readonly IS_EGG_OBJECT_MULTI_INSTANCE_PROTOTYPE: symbol;
|
|
7
|
+
static readonly FILE_PATH: symbol;
|
|
8
|
+
static readonly PROTOTYPE_PROPERTY: symbol;
|
|
9
|
+
static readonly MULTI_INSTANCE_PROTOTYPE_STATIC_PROPERTY: symbol;
|
|
10
|
+
static readonly MULTI_INSTANCE_PROTOTYPE_CALLBACK_PROPERTY: symbol;
|
|
11
|
+
static readonly INJECT_OBJECT_NAME_SET: symbol;
|
|
12
|
+
static readonly INJECT_TYPE: symbol;
|
|
13
|
+
static readonly INJECT_CONSTRUCTOR_NAME_SET: symbol;
|
|
14
|
+
static readonly CLAZZ_PROTO: symbol;
|
|
15
|
+
static readonly MULTI_INSTANCE_CONSTRUCTOR_INDEX: symbol;
|
|
16
|
+
static readonly MULTI_INSTANCE_CONSTRUCTOR_ATTRIBUTES: symbol;
|
|
17
|
+
/**
|
|
18
|
+
* Mark class is egg object prototype
|
|
19
|
+
* @param {Function} clazz -
|
|
20
|
+
*/
|
|
21
|
+
static setIsEggPrototype(clazz: EggProtoImplClass): void;
|
|
22
|
+
/**
|
|
23
|
+
* If class is egg object prototype, return true
|
|
24
|
+
* @param {Function} clazz -
|
|
25
|
+
*/
|
|
26
|
+
static isEggPrototype(clazz: EggProtoImplClass): boolean;
|
|
27
|
+
/**
|
|
28
|
+
* Mark class is egg object multi instance prototype
|
|
29
|
+
* @param {Function} clazz -
|
|
30
|
+
*/
|
|
31
|
+
static setIsEggMultiInstancePrototype(clazz: EggProtoImplClass): void;
|
|
32
|
+
/**
|
|
33
|
+
* If class is egg object multi instance prototype, return true
|
|
34
|
+
* @param {Function} clazz -
|
|
35
|
+
*/
|
|
36
|
+
static isEggMultiInstancePrototype(clazz: EggProtoImplClass): boolean;
|
|
37
|
+
/**
|
|
38
|
+
* Get the type of the egg multi-instance prototype.
|
|
39
|
+
* @param {Function} clazz -
|
|
40
|
+
*/
|
|
41
|
+
static getEggMultiInstancePrototypeType(clazz: EggProtoImplClass): MultiInstanceType | undefined;
|
|
42
|
+
/**
|
|
43
|
+
* set class file path
|
|
44
|
+
* @param {Function} clazz -
|
|
45
|
+
* @param {string} filePath -
|
|
46
|
+
*/
|
|
47
|
+
static setFilePath(clazz: EggProtoImplClass, filePath: string): void;
|
|
48
|
+
/**
|
|
49
|
+
* get class file path
|
|
50
|
+
* @param {Function} clazz -
|
|
51
|
+
*/
|
|
52
|
+
static getFilePath(clazz: EggProtoImplClass): string | undefined;
|
|
53
|
+
/**
|
|
54
|
+
* set class property
|
|
55
|
+
* @param {EggProtoImplClass} clazz -
|
|
56
|
+
* @param {EggPrototypeInfo} property -
|
|
57
|
+
*/
|
|
58
|
+
static setProperty(clazz: EggProtoImplClass, property: EggPrototypeInfo): void;
|
|
59
|
+
/**
|
|
60
|
+
* get class property
|
|
61
|
+
* @param {EggProtoImplClass} clazz -
|
|
62
|
+
* @return {EggPrototypeInfo} -
|
|
63
|
+
*/
|
|
64
|
+
static getProperty(clazz: EggProtoImplClass): EggPrototypeInfo | undefined;
|
|
65
|
+
static getInitType(clazz: EggProtoImplClass, ctx: MultiInstancePrototypeGetObjectsContext): Promise<string | undefined>;
|
|
66
|
+
static getAccessLevel(clazz: EggProtoImplClass, ctx: MultiInstancePrototypeGetObjectsContext): Promise<string | undefined>;
|
|
67
|
+
static getObjNames(clazz: EggProtoImplClass, ctx: MultiInstancePrototypeGetObjectsContext): Promise<EggPrototypeName[]>;
|
|
68
|
+
/**
|
|
69
|
+
* set class property
|
|
70
|
+
* @param {EggProtoImplClass} clazz -
|
|
71
|
+
* @param {EggPrototypeInfo} property -
|
|
72
|
+
*/
|
|
73
|
+
static setMultiInstanceStaticProperty(clazz: EggProtoImplClass, property: EggMultiInstancePrototypeInfo): void;
|
|
74
|
+
/**
|
|
75
|
+
* set class property
|
|
76
|
+
* @param {EggProtoImplClass} clazz -
|
|
77
|
+
* @param {EggPrototypeInfo} property -
|
|
78
|
+
*/
|
|
79
|
+
static setMultiInstanceCallbackProperty(clazz: EggProtoImplClass, property: EggMultiInstanceCallbackPrototypeInfo): void;
|
|
80
|
+
/**
|
|
81
|
+
* Get instance property of Static multi-instance prototype.
|
|
82
|
+
* @param {EggProtoImplClass} clazz -
|
|
83
|
+
*/
|
|
84
|
+
static getStaticMultiInstanceProperty(clazz: EggProtoImplClass): EggMultiInstancePrototypeInfo | undefined;
|
|
85
|
+
/**
|
|
86
|
+
* Get instance property of Dynamic multi-instance prototype.
|
|
87
|
+
* @param {EggProtoImplClass} clazz -
|
|
88
|
+
* @param {MultiInstancePrototypeGetObjectsContext} ctx -
|
|
89
|
+
*/
|
|
90
|
+
static getDynamicMultiInstanceProperty(clazz: EggProtoImplClass, ctx: MultiInstancePrototypeGetObjectsContext): Promise<EggMultiInstancePrototypeInfo | undefined>;
|
|
91
|
+
/**
|
|
92
|
+
* get class property
|
|
93
|
+
* @param {EggProtoImplClass} clazz -
|
|
94
|
+
* @param {MultiInstancePrototypeGetObjectsContext} ctx -
|
|
95
|
+
*/
|
|
96
|
+
static getMultiInstanceProperty(clazz: EggProtoImplClass, ctx: MultiInstancePrototypeGetObjectsContext): Promise<EggMultiInstancePrototypeInfo | undefined>;
|
|
97
|
+
static setMultiInstanceConstructorAttributes(clazz: EggProtoImplClass, attributes: QualifierAttribute[]): void;
|
|
98
|
+
static getMultiInstanceConstructorAttributes(clazz: EggProtoImplClass): QualifierAttribute[];
|
|
99
|
+
static setMultiInstanceConstructorIndex(clazz: EggProtoImplClass, index: number): void;
|
|
100
|
+
static getMultiInstanceConstructorIndex(clazz: EggProtoImplClass): number | undefined;
|
|
101
|
+
static setInjectType(clazz: EggProtoImplClass, type: InjectType): void;
|
|
102
|
+
static addInjectObject(clazz: EggProtoImplClass, injectObject: InjectObjectInfo): void;
|
|
103
|
+
static addInjectConstructor(clazz: EggProtoImplClass, injectConstructorInfo: InjectConstructorInfo): void;
|
|
104
|
+
static getInjectType(clazz: EggProtoImplClass): InjectType | undefined;
|
|
105
|
+
static getInjectObjects(clazz: EggProtoImplClass): Array<InjectObjectInfo | InjectConstructorInfo>;
|
|
106
|
+
static getClazzProto(clazz: EggProtoImplClass): object | undefined;
|
|
107
|
+
static setClazzProto(clazz: EggProtoImplClass, proto: object): void;
|
|
108
|
+
static getDesignType(clazz: EggProtoImplClass, propKey?: PropertyKey): unknown | undefined;
|
|
109
|
+
static getDesignParamtypes(clazz: EggProtoImplClass, propKey?: PropertyKey): unknown[] | undefined;
|
|
108
110
|
}
|
|
111
|
+
//#endregion
|
|
112
|
+
export { PrototypeUtil };
|