@eggjs/tegg-metadata 3.46.0 → 3.46.2
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/index.d.ts +8 -0
- package/dist/index.js +9 -1
- package/dist/src/factory/EggPrototypeCreatorFactory.d.ts +2 -0
- package/dist/src/factory/EggPrototypeCreatorFactory.js +36 -1
- package/dist/src/impl/EggPrototypeBuilder.d.ts +1 -0
- package/dist/src/impl/EggPrototypeBuilder.js +22 -11
- package/dist/src/impl/ModuleLoadUnit.d.ts +5 -3
- package/dist/src/impl/ModuleLoadUnit.js +50 -101
- package/dist/src/model/AppGraph.js +20 -17
- package/dist/src/model/ModuleDescriptor.d.ts +18 -0
- package/dist/src/model/ModuleDescriptor.js +46 -0
- package/dist/src/model/ProtoDescriptor/AbstractProtoDescriptor.d.ts +32 -0
- package/dist/src/model/ProtoDescriptor/AbstractProtoDescriptor.js +21 -0
- package/dist/src/model/ProtoDescriptor/ClassProtoDescriptor.d.ts +12 -0
- package/dist/src/model/ProtoDescriptor/ClassProtoDescriptor.js +32 -0
- package/dist/src/model/ProtoDescriptorHelper.d.ts +26 -0
- package/dist/src/model/ProtoDescriptorHelper.js +149 -0
- package/dist/src/model/graph/GlobalGraph.d.ts +55 -0
- package/dist/src/model/graph/GlobalGraph.js +203 -0
- package/dist/src/model/graph/GlobalModuleNode.d.ts +25 -0
- package/dist/src/model/graph/GlobalModuleNode.js +36 -0
- package/dist/src/model/graph/GlobalModuleNodeBuilder.d.ts +13 -0
- package/dist/src/model/graph/GlobalModuleNodeBuilder.js +53 -0
- package/dist/src/model/graph/ProtoNode.d.ts +19 -0
- package/dist/src/model/graph/ProtoNode.js +39 -0
- package/dist/src/model/graph/ProtoSelector.d.ts +6 -0
- package/dist/src/model/graph/ProtoSelector.js +3 -0
- package/package.json +6 -6
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
3
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
4
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
5
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
6
|
+
};
|
|
7
|
+
var _GlobalGraph_instances, _GlobalGraph_findDependencyProtoWithDefaultQualifiers, _GlobalGraph_findDependencyProtoNode, _GlobalGraph_findModuleNode, _GlobalGraph_sortModule, _GlobalGraph_sortClazz;
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.GlobalGraph = void 0;
|
|
10
|
+
const tegg_common_util_1 = require("@eggjs/tegg-common-util");
|
|
11
|
+
const tegg_types_1 = require("@eggjs/tegg-types");
|
|
12
|
+
const GlobalModuleNode_1 = require("./GlobalModuleNode");
|
|
13
|
+
const ProtoNode_1 = require("./ProtoNode");
|
|
14
|
+
const egg_errors_1 = require("egg-errors");
|
|
15
|
+
const errors_1 = require("../../errors");
|
|
16
|
+
const GlobalModuleNodeBuilder_1 = require("./GlobalModuleNodeBuilder");
|
|
17
|
+
/**
|
|
18
|
+
* Sort all prototypes and modules in app.
|
|
19
|
+
* - 1. LoaderFactory.loadApp: get ModuleDescriptors
|
|
20
|
+
* - 2. GlobalGraph.create: create global graph instance
|
|
21
|
+
* - 3. graph.build:
|
|
22
|
+
* - check duplicated prototypes exits
|
|
23
|
+
* - check inject object exists (only in strict mode,
|
|
24
|
+
* can register proto in hooks now, in next major version,
|
|
25
|
+
* should use load to create dynamic ProtoDescriptor and delete
|
|
26
|
+
* strict false options
|
|
27
|
+
* )
|
|
28
|
+
* - 4. graph.sort: build moduleConfigList and moduleProtoDescriptorMap
|
|
29
|
+
*/
|
|
30
|
+
class GlobalGraph {
|
|
31
|
+
constructor(options) {
|
|
32
|
+
var _a;
|
|
33
|
+
_GlobalGraph_instances.add(this);
|
|
34
|
+
this.moduleGraph = new tegg_common_util_1.Graph();
|
|
35
|
+
this.protoGraph = new tegg_common_util_1.Graph();
|
|
36
|
+
this.strict = (_a = options === null || options === void 0 ? void 0 : options.strict) !== null && _a !== void 0 ? _a : false;
|
|
37
|
+
this.moduleProtoDescriptorMap = new Map();
|
|
38
|
+
}
|
|
39
|
+
addModuleNode(moduleNode) {
|
|
40
|
+
if (!this.moduleGraph.addVertex(new tegg_common_util_1.GraphNode(moduleNode))) {
|
|
41
|
+
throw new Error(`duplicate module: ${moduleNode}`);
|
|
42
|
+
}
|
|
43
|
+
for (const protoNode of moduleNode.protos) {
|
|
44
|
+
if (!this.protoGraph.addVertex(protoNode)) {
|
|
45
|
+
throw new Error(`duplicate proto: ${protoNode.val}`);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
build() {
|
|
50
|
+
for (const moduleNode of this.moduleGraph.nodes.values()) {
|
|
51
|
+
for (const protoNode of moduleNode.val.protos) {
|
|
52
|
+
for (const injectObj of protoNode.val.proto.injectObjects) {
|
|
53
|
+
const injectProto = __classPrivateFieldGet(this, _GlobalGraph_instances, "m", _GlobalGraph_findDependencyProtoNode).call(this, protoNode.val.proto, injectObj);
|
|
54
|
+
if (!injectProto) {
|
|
55
|
+
if (!this.strict) {
|
|
56
|
+
continue;
|
|
57
|
+
}
|
|
58
|
+
throw egg_errors_1.FrameworkErrorFormater.formatError(new errors_1.EggPrototypeNotFound(injectObj.objName, protoNode.val.proto.instanceModuleName));
|
|
59
|
+
}
|
|
60
|
+
this.protoGraph.addEdge(protoNode, injectProto, new ProtoNode_1.ProtoDependencyMeta({
|
|
61
|
+
injectObj: injectObj.objName,
|
|
62
|
+
}));
|
|
63
|
+
const injectModule = __classPrivateFieldGet(this, _GlobalGraph_instances, "m", _GlobalGraph_findModuleNode).call(this, injectProto.val.proto.instanceModuleName);
|
|
64
|
+
if (!injectModule) {
|
|
65
|
+
if (!this.strict) {
|
|
66
|
+
continue;
|
|
67
|
+
}
|
|
68
|
+
throw new Error(`not found module ${injectProto.val.proto.instanceModuleName}`);
|
|
69
|
+
}
|
|
70
|
+
if (moduleNode.val.id !== injectModule.val.id) {
|
|
71
|
+
this.moduleGraph.addEdge(moduleNode, injectModule, new GlobalModuleNode_1.ModuleDependencyMeta(protoNode.val.proto, injectObj.objName));
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
findInjectProto(proto, injectObject) {
|
|
78
|
+
const edge = this.protoGraph.findToNode(ProtoNode_1.ProtoNode.createProtoId(proto), new ProtoNode_1.ProtoDependencyMeta({
|
|
79
|
+
injectObj: injectObject.objName,
|
|
80
|
+
}));
|
|
81
|
+
return edge === null || edge === void 0 ? void 0 : edge.val.proto;
|
|
82
|
+
}
|
|
83
|
+
sort() {
|
|
84
|
+
__classPrivateFieldGet(this, _GlobalGraph_instances, "m", _GlobalGraph_sortModule).call(this);
|
|
85
|
+
__classPrivateFieldGet(this, _GlobalGraph_instances, "m", _GlobalGraph_sortClazz).call(this);
|
|
86
|
+
}
|
|
87
|
+
static create(moduleDescriptors, options) {
|
|
88
|
+
var _a;
|
|
89
|
+
const graph = new GlobalGraph(options);
|
|
90
|
+
for (const moduleDescriptor of moduleDescriptors) {
|
|
91
|
+
const moduleNodeBuilder = new GlobalModuleNodeBuilder_1.GlobalModuleNodeBuilder({
|
|
92
|
+
name: moduleDescriptor.name,
|
|
93
|
+
unitPath: moduleDescriptor.unitPath,
|
|
94
|
+
optional: (_a = moduleDescriptor.optional) !== null && _a !== void 0 ? _a : false,
|
|
95
|
+
});
|
|
96
|
+
for (const clazz of moduleDescriptor.clazzList) {
|
|
97
|
+
moduleNodeBuilder.addClazz(clazz);
|
|
98
|
+
}
|
|
99
|
+
for (const clazz of moduleDescriptor.multiInstanceClazzList) {
|
|
100
|
+
moduleNodeBuilder.addMultiInstanceClazz(clazz, moduleDescriptor.name, moduleDescriptor.unitPath);
|
|
101
|
+
}
|
|
102
|
+
graph.addModuleNode(moduleNodeBuilder.build());
|
|
103
|
+
}
|
|
104
|
+
return graph;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
exports.GlobalGraph = GlobalGraph;
|
|
108
|
+
_GlobalGraph_instances = new WeakSet(), _GlobalGraph_findDependencyProtoWithDefaultQualifiers = function _GlobalGraph_findDependencyProtoWithDefaultQualifiers(proto, injectObject, qualifiers) {
|
|
109
|
+
// TODO perf O(n(proto count)*m(inject count)*n)
|
|
110
|
+
const result = [];
|
|
111
|
+
for (const node of this.protoGraph.nodes.values()) {
|
|
112
|
+
if (node.val.selectProto({
|
|
113
|
+
name: injectObject.objName,
|
|
114
|
+
qualifiers: [
|
|
115
|
+
...injectObject.qualifiers,
|
|
116
|
+
...qualifiers,
|
|
117
|
+
],
|
|
118
|
+
moduleName: proto.instanceModuleName,
|
|
119
|
+
})) {
|
|
120
|
+
result.push(node);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
return result;
|
|
124
|
+
}, _GlobalGraph_findDependencyProtoNode = function _GlobalGraph_findDependencyProtoNode(proto, injectObject) {
|
|
125
|
+
// 1. find proto with request
|
|
126
|
+
// 2. try to add Context qualifier to find
|
|
127
|
+
// 3. try to add self init type qualifier to find
|
|
128
|
+
const protos = __classPrivateFieldGet(this, _GlobalGraph_instances, "m", _GlobalGraph_findDependencyProtoWithDefaultQualifiers).call(this, proto, injectObject, []);
|
|
129
|
+
if (protos.length === 0) {
|
|
130
|
+
return;
|
|
131
|
+
// throw FrameworkErrorFormater.formatError(new EggPrototypeNotFound(injectObject.objName, proto.instanceModuleName));
|
|
132
|
+
}
|
|
133
|
+
if (protos.length === 1) {
|
|
134
|
+
return protos[0];
|
|
135
|
+
}
|
|
136
|
+
const protoWithContext = __classPrivateFieldGet(this, _GlobalGraph_instances, "m", _GlobalGraph_findDependencyProtoWithDefaultQualifiers).call(this, proto, injectObject, [{
|
|
137
|
+
attribute: tegg_types_1.InitTypeQualifierAttribute,
|
|
138
|
+
value: tegg_types_1.ObjectInitType.CONTEXT,
|
|
139
|
+
}]);
|
|
140
|
+
if (protoWithContext.length === 1) {
|
|
141
|
+
return protoWithContext[0];
|
|
142
|
+
}
|
|
143
|
+
const protoWithSelfInitType = __classPrivateFieldGet(this, _GlobalGraph_instances, "m", _GlobalGraph_findDependencyProtoWithDefaultQualifiers).call(this, proto, injectObject, [{
|
|
144
|
+
attribute: tegg_types_1.InitTypeQualifierAttribute,
|
|
145
|
+
value: proto.initType,
|
|
146
|
+
}]);
|
|
147
|
+
if (protoWithSelfInitType.length === 1) {
|
|
148
|
+
return protoWithSelfInitType[0];
|
|
149
|
+
}
|
|
150
|
+
const loadUnitQualifier = injectObject.qualifiers.find(t => t.attribute === tegg_types_1.LoadUnitNameQualifierAttribute);
|
|
151
|
+
if (!loadUnitQualifier) {
|
|
152
|
+
return __classPrivateFieldGet(this, _GlobalGraph_instances, "m", _GlobalGraph_findDependencyProtoNode).call(this, proto, {
|
|
153
|
+
...injectObject,
|
|
154
|
+
qualifiers: [
|
|
155
|
+
...injectObject.qualifiers,
|
|
156
|
+
{
|
|
157
|
+
attribute: tegg_types_1.LoadUnitNameQualifierAttribute,
|
|
158
|
+
value: proto.instanceModuleName,
|
|
159
|
+
},
|
|
160
|
+
],
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
throw egg_errors_1.FrameworkErrorFormater.formatError(new errors_1.MultiPrototypeFound(injectObject.objName, injectObject.qualifiers));
|
|
164
|
+
}, _GlobalGraph_findModuleNode = function _GlobalGraph_findModuleNode(moduleName) {
|
|
165
|
+
for (const node of this.moduleGraph.nodes.values()) {
|
|
166
|
+
if (node.val.name === moduleName) {
|
|
167
|
+
return node;
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
}, _GlobalGraph_sortModule = function _GlobalGraph_sortModule() {
|
|
171
|
+
const loopPath = this.moduleGraph.loopPath();
|
|
172
|
+
if (loopPath) {
|
|
173
|
+
throw new Error('module has recursive deps: ' + loopPath);
|
|
174
|
+
}
|
|
175
|
+
this.moduleConfigList = this.moduleGraph.sort()
|
|
176
|
+
.filter(t => {
|
|
177
|
+
return t.val.optional !== true || t.fromNodeMap.size > 0;
|
|
178
|
+
})
|
|
179
|
+
.map(t => {
|
|
180
|
+
return {
|
|
181
|
+
name: t.val.name,
|
|
182
|
+
path: t.val.unitPath,
|
|
183
|
+
optional: t.val.optional,
|
|
184
|
+
};
|
|
185
|
+
});
|
|
186
|
+
}, _GlobalGraph_sortClazz = function _GlobalGraph_sortClazz() {
|
|
187
|
+
const loopPath = this.protoGraph.loopPath();
|
|
188
|
+
if (loopPath) {
|
|
189
|
+
throw new Error('proto has recursive deps: ' + loopPath);
|
|
190
|
+
}
|
|
191
|
+
for (const proto of this.protoGraph.sort()) {
|
|
192
|
+
// // ignore the proto has no dependent
|
|
193
|
+
// if (proto.fromNodeMap.size === 0) continue;
|
|
194
|
+
const instanceModuleName = proto.val.proto.instanceModuleName;
|
|
195
|
+
let moduleProtoList = this.moduleProtoDescriptorMap.get(instanceModuleName);
|
|
196
|
+
if (!moduleProtoList) {
|
|
197
|
+
moduleProtoList = [];
|
|
198
|
+
this.moduleProtoDescriptorMap.set(instanceModuleName, moduleProtoList);
|
|
199
|
+
}
|
|
200
|
+
moduleProtoList.push(proto.val.proto);
|
|
201
|
+
}
|
|
202
|
+
};
|
|
203
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR2xvYmFsR3JhcGguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbW9kZWwvZ3JhcGgvR2xvYmFsR3JhcGgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsOERBQTRFO0FBQzVFLGtEQU0yQjtBQUMzQix5REFBNEU7QUFDNUUsMkNBQTZEO0FBQzdELDJDQUFvRDtBQUNwRCx5Q0FBeUU7QUFDekUsdUVBQW9FO0FBU3BFOzs7Ozs7Ozs7Ozs7R0FZRztBQUNILE1BQWEsV0FBVztJQTZCdEIsWUFBWSxPQUE0Qjs7O1FBQ3RDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSx3QkFBSyxFQUEwQyxDQUFDO1FBQ3ZFLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSx3QkFBSyxFQUFrQyxDQUFDO1FBQzlELElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBQSxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsTUFBTSxtQ0FBSSxLQUFLLENBQUM7UUFDdkMsSUFBSSxDQUFDLHdCQUF3QixHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7SUFDNUMsQ0FBQztJQUVELGFBQWEsQ0FBQyxVQUE0QjtRQUN4QyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsSUFBSSw0QkFBUyxDQUF5QyxVQUFVLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDbkcsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQkFBcUIsVUFBVSxFQUFFLENBQUMsQ0FBQztRQUNyRCxDQUFDO1FBQ0QsS0FBSyxNQUFNLFNBQVMsSUFBSSxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDMUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7Z0JBQzFDLE1BQU0sSUFBSSxLQUFLLENBQUMsb0JBQW9CLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZELENBQUM7UUFDSCxDQUFD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
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { GraphNode, GraphNodeObj, EdgeMeta } from '@eggjs/tegg-common-util';
|
|
2
|
+
import { ProtoDependencyMeta, ProtoNode } from './ProtoNode';
|
|
3
|
+
import { ProtoDescriptor } from '@eggjs/tegg-types';
|
|
4
|
+
export interface GlobalModuleNodeOptions {
|
|
5
|
+
name: string;
|
|
6
|
+
unitPath: string;
|
|
7
|
+
optional: boolean;
|
|
8
|
+
}
|
|
9
|
+
export declare class ModuleDependencyMeta implements EdgeMeta {
|
|
10
|
+
readonly obj: ProtoDescriptor;
|
|
11
|
+
readonly injectObj: PropertyKey;
|
|
12
|
+
constructor(obj: ProtoDescriptor, injectObj: PropertyKey);
|
|
13
|
+
equal(meta: ModuleDependencyMeta): boolean;
|
|
14
|
+
toString(): string;
|
|
15
|
+
}
|
|
16
|
+
export declare class GlobalModuleNode implements GraphNodeObj {
|
|
17
|
+
readonly id: string;
|
|
18
|
+
readonly name: string;
|
|
19
|
+
readonly unitPath: string;
|
|
20
|
+
readonly optional: boolean;
|
|
21
|
+
readonly protos: GraphNode<ProtoNode, ProtoDependencyMeta>[];
|
|
22
|
+
constructor(options: GlobalModuleNodeOptions);
|
|
23
|
+
addProto(proto: ProtoDescriptor): void;
|
|
24
|
+
toString(): string;
|
|
25
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GlobalModuleNode = exports.ModuleDependencyMeta = void 0;
|
|
4
|
+
const tegg_common_util_1 = require("@eggjs/tegg-common-util");
|
|
5
|
+
const ProtoNode_1 = require("./ProtoNode");
|
|
6
|
+
class ModuleDependencyMeta {
|
|
7
|
+
constructor(obj, injectObj) {
|
|
8
|
+
this.obj = obj;
|
|
9
|
+
this.injectObj = injectObj;
|
|
10
|
+
}
|
|
11
|
+
equal(meta) {
|
|
12
|
+
return this.obj.equal(meta.obj)
|
|
13
|
+
&& this.injectObj === meta.injectObj;
|
|
14
|
+
}
|
|
15
|
+
toString() {
|
|
16
|
+
return `Object ${String(this.obj.name)} inject ${String(this.injectObj)}`;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
exports.ModuleDependencyMeta = ModuleDependencyMeta;
|
|
20
|
+
class GlobalModuleNode {
|
|
21
|
+
constructor(options) {
|
|
22
|
+
this.id = options.unitPath;
|
|
23
|
+
this.name = options.name;
|
|
24
|
+
this.unitPath = options.unitPath;
|
|
25
|
+
this.optional = options.optional;
|
|
26
|
+
this.protos = [];
|
|
27
|
+
}
|
|
28
|
+
addProto(proto) {
|
|
29
|
+
this.protos.push(new tegg_common_util_1.GraphNode(new ProtoNode_1.ProtoNode(proto)));
|
|
30
|
+
}
|
|
31
|
+
toString() {
|
|
32
|
+
return `${this.name}@${this.unitPath}`;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
exports.GlobalModuleNode = GlobalModuleNode;
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR2xvYmFsTW9kdWxlTm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9tb2RlbC9ncmFwaC9HbG9iYWxNb2R1bGVOb2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDhEQUE0RTtBQUM1RSwyQ0FBNkQ7QUFTN0QsTUFBYSxvQkFBb0I7SUFDL0IsWUFBcUIsR0FBb0IsRUFBVyxTQUFzQjtRQUFyRCxRQUFHLEdBQUgsR0FBRyxDQUFpQjtRQUFXLGNBQVMsR0FBVCxTQUFTLENBQWE7SUFDMUUsQ0FBQztJQUVELEtBQUssQ0FBQyxJQUEwQjtRQUM5QixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7ZUFDMUIsSUFBSSxDQUFDLFNBQVMsS0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTyxVQUFVLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztJQUM1RSxDQUFDO0NBQ0Y7QUFaRCxvREFZQztBQUVELE1BQWEsZ0JBQWdCO0lBTzNCLFlBQVksT0FBZ0M7UUFDMUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDO1FBQzNCLElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQztRQUN6QixJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUM7UUFDakMsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFRCxRQUFRLENBQUMsS0FBc0I7UUFDN0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSw0QkFBUyxDQUFDLElBQUkscUJBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELFFBQVE7UUFDTixPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDekMsQ0FBQztDQUNGO0FBdEJELDRDQXNCQyJ9
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { EggProtoImplClass } from '@eggjs/tegg-types';
|
|
2
|
+
import { GlobalModuleNode, GlobalModuleNodeOptions } from './GlobalModuleNode';
|
|
3
|
+
export declare class GlobalModuleNodeBuilder {
|
|
4
|
+
private readonly name;
|
|
5
|
+
private readonly unitPath;
|
|
6
|
+
private readonly optional;
|
|
7
|
+
private readonly protos;
|
|
8
|
+
constructor(options: GlobalModuleNodeOptions);
|
|
9
|
+
addClazz(clazz: EggProtoImplClass): this;
|
|
10
|
+
addMultiInstanceClazz(clazz: EggProtoImplClass, defineModuleName: string, defineUnitPath: string): this;
|
|
11
|
+
build(): GlobalModuleNode;
|
|
12
|
+
static create(unitPath: string, optional?: boolean): GlobalModuleNodeBuilder;
|
|
13
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GlobalModuleNodeBuilder = void 0;
|
|
4
|
+
const GlobalModuleNode_1 = require("./GlobalModuleNode");
|
|
5
|
+
const tegg_common_util_1 = require("@eggjs/tegg-common-util");
|
|
6
|
+
const ProtoDescriptorHelper_1 = require("../ProtoDescriptorHelper");
|
|
7
|
+
class GlobalModuleNodeBuilder {
|
|
8
|
+
constructor(options) {
|
|
9
|
+
this.name = options.name;
|
|
10
|
+
this.unitPath = options.unitPath;
|
|
11
|
+
this.optional = options.optional;
|
|
12
|
+
this.protos = [];
|
|
13
|
+
}
|
|
14
|
+
addClazz(clazz) {
|
|
15
|
+
const proto = ProtoDescriptorHelper_1.ProtoDescriptorHelper.createByInstanceClazz(clazz, {
|
|
16
|
+
moduleName: this.name,
|
|
17
|
+
unitPath: this.unitPath,
|
|
18
|
+
});
|
|
19
|
+
this.protos.push(proto);
|
|
20
|
+
return this;
|
|
21
|
+
}
|
|
22
|
+
addMultiInstanceClazz(clazz, defineModuleName, defineUnitPath) {
|
|
23
|
+
const protos = ProtoDescriptorHelper_1.ProtoDescriptorHelper.createByMultiInstanceClazz(clazz, {
|
|
24
|
+
defineModuleName,
|
|
25
|
+
defineUnitPath,
|
|
26
|
+
instanceModuleName: this.name,
|
|
27
|
+
instanceDefineUnitPath: this.unitPath,
|
|
28
|
+
});
|
|
29
|
+
this.protos.push(...protos);
|
|
30
|
+
return this;
|
|
31
|
+
}
|
|
32
|
+
build() {
|
|
33
|
+
const node = new GlobalModuleNode_1.GlobalModuleNode({
|
|
34
|
+
name: this.name,
|
|
35
|
+
unitPath: this.unitPath,
|
|
36
|
+
optional: this.optional,
|
|
37
|
+
});
|
|
38
|
+
for (const proto of this.protos) {
|
|
39
|
+
node.addProto(proto);
|
|
40
|
+
}
|
|
41
|
+
return node;
|
|
42
|
+
}
|
|
43
|
+
static create(unitPath, optional = false) {
|
|
44
|
+
const name = tegg_common_util_1.ModuleConfigUtil.readModuleNameSync(unitPath);
|
|
45
|
+
return new GlobalModuleNodeBuilder({
|
|
46
|
+
name,
|
|
47
|
+
unitPath,
|
|
48
|
+
optional,
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
exports.GlobalModuleNodeBuilder = GlobalModuleNodeBuilder;
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR2xvYmFsTW9kdWxlTm9kZUJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbW9kZWwvZ3JhcGgvR2xvYmFsTW9kdWxlTm9kZUJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EseURBQStFO0FBQy9FLDhEQUEyRDtBQUMzRCxvRUFBaUU7QUFFakUsTUFBYSx1QkFBdUI7SUFNbEMsWUFBWSxPQUFnQztRQUMxQyxJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUM7UUFDekIsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQztRQUNqQyxJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQsUUFBUSxDQUFDLEtBQXdCO1FBQy9CLE1BQU0sS0FBSyxHQUFHLDZDQUFxQixDQUFDLHFCQUFxQixDQUFDLEtBQUssRUFBRTtZQUMvRCxVQUFVLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDckIsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1NBQ3hCLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELHFCQUFxQixDQUFDLEtBQXdCLEVBQUUsZ0JBQXdCLEVBQUUsY0FBc0I7UUFDOUYsTUFBTSxNQUFNLEdBQUcsNkNBQXFCLENBQUMsMEJBQTBCLENBQUMsS0FBSyxFQUFFO1lBQ3JFLGdCQUFnQjtZQUNoQixjQUFjO1lBQ2Qsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDN0Isc0JBQXNCLEVBQUUsSUFBSSxDQUFDLFFBQVE7U0FDdEMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQztRQUM1QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxLQUFLO1FBQ0gsTUFBTSxJQUFJLEdBQUcsSUFBSSxtQ0FBZ0IsQ0FBQztZQUNoQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDZixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDdkIsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1NBQ3hCLENBQUMsQ0FBQztRQUNILEtBQUssTUFBTSxLQUFLLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkIsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBZ0IsRUFBRSxRQUFRLEdBQUcsS0FBSztRQUM5QyxNQUFNLElBQUksR0FBRyxtQ0FBZ0IsQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMzRCxPQUFPLElBQUksdUJBQXVCLENBQUM7WUFDakMsSUFBSTtZQUNKLFFBQVE7WUFDUixRQUFRO1NBQ1QsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBckRELDBEQXFEQyJ9
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { GraphNodeObj, ProtoDescriptor } from '@eggjs/tegg-types';
|
|
2
|
+
import { ProtoSelectorContext } from './ProtoSelector';
|
|
3
|
+
import { EdgeMeta } from '@eggjs/tegg-common-util';
|
|
4
|
+
export declare class ProtoDependencyMeta implements EdgeMeta {
|
|
5
|
+
injectObj: PropertyKey;
|
|
6
|
+
constructor({ injectObj, }: {
|
|
7
|
+
injectObj: PropertyKey;
|
|
8
|
+
});
|
|
9
|
+
equal(meta: ProtoDependencyMeta): boolean;
|
|
10
|
+
toString(): string;
|
|
11
|
+
}
|
|
12
|
+
export declare class ProtoNode implements GraphNodeObj {
|
|
13
|
+
readonly id: string;
|
|
14
|
+
readonly proto: ProtoDescriptor;
|
|
15
|
+
constructor(proto: ProtoDescriptor);
|
|
16
|
+
toString(): string;
|
|
17
|
+
selectProto(ctx: ProtoSelectorContext): boolean;
|
|
18
|
+
static createProtoId(proto: ProtoDescriptor): string;
|
|
19
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ProtoNode = exports.ProtoDependencyMeta = void 0;
|
|
4
|
+
const ProtoDescriptorHelper_1 = require("../ProtoDescriptorHelper");
|
|
5
|
+
class ProtoDependencyMeta {
|
|
6
|
+
constructor({ injectObj, }) {
|
|
7
|
+
this.injectObj = injectObj;
|
|
8
|
+
}
|
|
9
|
+
equal(meta) {
|
|
10
|
+
return this.injectObj === meta.injectObj;
|
|
11
|
+
}
|
|
12
|
+
toString() {
|
|
13
|
+
return `inject ${String(this.injectObj)}`;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
exports.ProtoDependencyMeta = ProtoDependencyMeta;
|
|
17
|
+
class ProtoNode {
|
|
18
|
+
constructor(proto) {
|
|
19
|
+
this.id = ProtoNode.createProtoId(proto);
|
|
20
|
+
this.proto = proto;
|
|
21
|
+
}
|
|
22
|
+
toString() {
|
|
23
|
+
return `${String(this.proto.name)}@${this.proto.instanceDefineUnitPath}`;
|
|
24
|
+
}
|
|
25
|
+
selectProto(ctx) {
|
|
26
|
+
return ProtoDescriptorHelper_1.ProtoDescriptorHelper.selectProto(this.proto, ctx);
|
|
27
|
+
}
|
|
28
|
+
static createProtoId(proto) {
|
|
29
|
+
const id = [
|
|
30
|
+
proto.name,
|
|
31
|
+
proto.instanceModuleName,
|
|
32
|
+
proto.initType,
|
|
33
|
+
...proto.qualifiers.map(t => String(t.attribute) + String(t.value)),
|
|
34
|
+
];
|
|
35
|
+
return id.join('@');
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
exports.ProtoNode = ProtoNode;
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHJvdG9Ob2RlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL21vZGVsL2dyYXBoL1Byb3RvTm9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFHQSxvRUFBaUU7QUFFakUsTUFBYSxtQkFBbUI7SUFHOUIsWUFBWSxFQUNWLFNBQVMsR0FHVjtRQUNDLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO0lBQzdCLENBQUM7SUFFRCxLQUFLLENBQUMsSUFBeUI7UUFDN0IsT0FBTyxJQUFJLENBQUMsU0FBUyxLQUFLLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDM0MsQ0FBQztJQUVELFFBQVE7UUFDTixPQUFPLFVBQVUsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO0lBQzVDLENBQUM7Q0FDRjtBQWxCRCxrREFrQkM7QUFFRCxNQUFhLFNBQVM7SUFJcEIsWUFBWSxLQUFzQjtRQUNoQyxJQUFJLENBQUMsRUFBRSxHQUFHLFNBQVMsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDckIsQ0FBQztJQUVELFFBQVE7UUFDTixPQUFPLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQzNFLENBQUM7SUFFRCxXQUFXLENBQUMsR0FBeUI7UUFDbkMsT0FBTyw2Q0FBcUIsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsTUFBTSxDQUFDLGFBQWEsQ0FBQyxLQUFzQjtRQUN6QyxNQUFNLEVBQUUsR0FBRztZQUNULEtBQUssQ0FBQyxJQUFJO1lBQ1YsS0FBSyxDQUFDLGtCQUFrQjtZQUN4QixLQUFLLENBQUMsUUFBUTtZQUNkLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDcEUsQ0FBQztRQUNGLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN0QixDQUFDO0NBQ0Y7QUExQkQsOEJBMEJDIn0=
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHJvdG9TZWxlY3Rvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9tb2RlbC9ncmFwaC9Qcm90b1NlbGVjdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@eggjs/tegg-metadata",
|
|
3
|
-
"version": "3.46.
|
|
3
|
+
"version": "3.46.2",
|
|
4
4
|
"description": "tegg metadata",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"egg",
|
|
@@ -35,10 +35,10 @@
|
|
|
35
35
|
"node": ">=14.0.0"
|
|
36
36
|
},
|
|
37
37
|
"dependencies": {
|
|
38
|
-
"@eggjs/core-decorator": "^3.46.
|
|
39
|
-
"@eggjs/tegg-common-util": "^3.46.
|
|
40
|
-
"@eggjs/tegg-lifecycle": "^3.46.
|
|
41
|
-
"@eggjs/tegg-types": "^3.46.
|
|
38
|
+
"@eggjs/core-decorator": "^3.46.2",
|
|
39
|
+
"@eggjs/tegg-common-util": "^3.46.2",
|
|
40
|
+
"@eggjs/tegg-lifecycle": "^3.46.2",
|
|
41
|
+
"@eggjs/tegg-types": "^3.46.2",
|
|
42
42
|
"egg-errors": "^2.2.3"
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {
|
|
@@ -54,5 +54,5 @@
|
|
|
54
54
|
"publishConfig": {
|
|
55
55
|
"access": "public"
|
|
56
56
|
},
|
|
57
|
-
"gitHead": "
|
|
57
|
+
"gitHead": "b6d33ddd36184e0d610e7df7f56cc326e9d3f17b"
|
|
58
58
|
}
|