@eggjs/tegg-standalone 3.18.0 → 3.19.0
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/src/EggModuleLoader.js +4 -20
- package/dist/src/Runner.d.ts +1 -0
- package/dist/src/Runner.js +6 -1
- package/package.json +12 -12
- package/dist/src/StandaloneGraph.d.ts +0 -29
- package/dist/src/StandaloneGraph.js +0 -127
|
@@ -3,36 +3,20 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.EggModuleLoader = void 0;
|
|
4
4
|
const tegg_metadata_1 = require("@eggjs/tegg-metadata");
|
|
5
5
|
const tegg_loader_1 = require("@eggjs/tegg-loader");
|
|
6
|
-
const
|
|
7
|
-
const tegg_1 = require("@eggjs/tegg");
|
|
8
|
-
const tegg_common_util_1 = require("@eggjs/tegg-common-util");
|
|
6
|
+
const helper_1 = require("@eggjs/tegg/helper");
|
|
9
7
|
class EggModuleLoader {
|
|
10
8
|
constructor(moduleReferences) {
|
|
11
9
|
this.moduleReferences = moduleReferences;
|
|
12
10
|
}
|
|
13
11
|
buildAppGraph(loaderCache) {
|
|
14
|
-
const appGraph = new
|
|
12
|
+
const appGraph = new helper_1.AppGraph();
|
|
15
13
|
for (const moduleConfig of this.moduleReferences) {
|
|
16
14
|
const modulePath = moduleConfig.path;
|
|
17
|
-
const moduleNode = new
|
|
15
|
+
const moduleNode = new helper_1.ModuleNode(moduleConfig);
|
|
18
16
|
const loader = tegg_loader_1.LoaderFactory.createLoader(modulePath, tegg_metadata_1.EggLoadUnitType.MODULE);
|
|
19
17
|
loaderCache.set(modulePath, loader);
|
|
20
18
|
const clazzList = loader.load();
|
|
21
19
|
for (const clazz of clazzList) {
|
|
22
|
-
// TODO copy from ModuleLoadUnit, duplicate code
|
|
23
|
-
const moduleName = tegg_common_util_1.ModuleConfigUtil.readModuleNameSync(modulePath);
|
|
24
|
-
const defaultQualifier = [{
|
|
25
|
-
attribute: tegg_1.InitTypeQualifierAttribute,
|
|
26
|
-
value: tegg_1.PrototypeUtil.getInitType(clazz, {
|
|
27
|
-
unitPath: modulePath,
|
|
28
|
-
}),
|
|
29
|
-
}, {
|
|
30
|
-
attribute: tegg_1.LoadUnitNameQualifierAttribute,
|
|
31
|
-
value: moduleName,
|
|
32
|
-
}];
|
|
33
|
-
defaultQualifier.forEach(qualifier => {
|
|
34
|
-
tegg_1.QualifierUtil.addProtoQualifier(clazz, qualifier.attribute, qualifier.value);
|
|
35
|
-
});
|
|
36
20
|
moduleNode.addClazz(clazz);
|
|
37
21
|
}
|
|
38
22
|
appGraph.addNode(moduleNode);
|
|
@@ -57,4 +41,4 @@ class EggModuleLoader {
|
|
|
57
41
|
}
|
|
58
42
|
}
|
|
59
43
|
exports.EggModuleLoader = EggModuleLoader;
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWdnTW9kdWxlTG9hZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL0VnZ01vZHVsZUxvYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx3REFBMEY7QUFDMUYsb0RBQW1EO0FBQ25ELCtDQUEwRDtBQUcxRCxNQUFhLGVBQWU7SUFHMUIsWUFBWSxnQkFBNEM7UUFDdEQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLGdCQUFnQixDQUFDO0lBQzNDLENBQUM7SUFFTyxhQUFhLENBQUMsV0FBZ0M7UUFDcEQsTUFBTSxRQUFRLEdBQUcsSUFBSSxpQkFBUSxFQUFFLENBQUM7UUFDaEMsS0FBSyxNQUFNLFlBQVksSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDaEQsTUFBTSxVQUFVLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQztZQUNyQyxNQUFNLFVBQVUsR0FBRyxJQUFJLG1CQUFVLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDaEQsTUFBTSxNQUFNLEdBQUcsMkJBQWEsQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLCtCQUFlLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDOUUsV0FBVyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDcEMsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2hDLEtBQUssTUFBTSxLQUFLLElBQUksU0FBUyxFQUFFO2dCQUM3QixVQUFVLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQzVCO1lBQ0QsUUFBUSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUM5QjtRQUNELFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNqQixPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBRUQsS0FBSyxDQUFDLElBQUk7UUFDUixNQUFNLFNBQVMsR0FBZSxFQUFFLENBQUM7UUFDakMsTUFBTSxXQUFXLEdBQUcsSUFBSSxHQUFHLEVBQWtCLENBQUM7UUFDOUMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNqRCxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDaEIsTUFBTSxnQkFBZ0IsR0FBRyxRQUFRLENBQUMsZ0JBQWdCLENBQUM7UUFDbkQsS0FBSyxNQUFNLFlBQVksSUFBSSxnQkFBZ0IsRUFBRTtZQUMzQyxNQUFNLFVBQVUsR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDO1lBQ3JDLE1BQU0sTUFBTSxHQUFHLFdBQVcsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFFLENBQUM7WUFDNUMsTUFBTSxRQUFRLEdBQUcsTUFBTSwrQkFBZSxDQUFDLGNBQWMsQ0FBQyxVQUFVLEVBQUUsK0JBQWUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDbEcsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUMxQjtRQUNELE9BQU8sU0FBUyxDQUFDO1FBQ2pCLG9CQUFvQjtJQUN0QixDQUFDO0NBQ0Y7QUF2Q0QsMENBdUNDIn0=
|
package/dist/src/Runner.d.ts
CHANGED
|
@@ -18,6 +18,7 @@ export declare class Runner {
|
|
|
18
18
|
private loadUnitLoader;
|
|
19
19
|
private runnerProto;
|
|
20
20
|
private configSourceEggPrototypeHook;
|
|
21
|
+
private loadUnitMultiInstanceProtoHook;
|
|
21
22
|
private readonly loadUnitInnerClassHook;
|
|
22
23
|
private readonly crosscutAdviceFactory;
|
|
23
24
|
private readonly loadUnitAopHook;
|
package/dist/src/Runner.js
CHANGED
|
@@ -80,6 +80,8 @@ class Runner {
|
|
|
80
80
|
tegg_metadata_1.EggPrototypeLifecycleUtil.registerLifecycle(this.eggPrototypeCrossCutHook);
|
|
81
81
|
tegg_metadata_1.LoadUnitLifecycleUtil.registerLifecycle(this.loadUnitAopHook);
|
|
82
82
|
tegg_runtime_1.EggObjectLifecycleUtil.registerLifecycle(this.eggObjectAopHook);
|
|
83
|
+
this.loadUnitMultiInstanceProtoHook = new tegg_metadata_1.LoadUnitMultiInstanceProtoHook();
|
|
84
|
+
tegg_metadata_1.LoadUnitLifecycleUtil.registerLifecycle(this.loadUnitMultiInstanceProtoHook);
|
|
83
85
|
}
|
|
84
86
|
async init() {
|
|
85
87
|
StandaloneContextHandler_1.StandaloneContextHandler.register();
|
|
@@ -158,7 +160,10 @@ class Runner {
|
|
|
158
160
|
if (this.eggObjectAopHook) {
|
|
159
161
|
tegg_runtime_1.EggObjectLifecycleUtil.deleteLifecycle(this.eggObjectAopHook);
|
|
160
162
|
}
|
|
163
|
+
if (this.loadUnitMultiInstanceProtoHook) {
|
|
164
|
+
tegg_metadata_1.LoadUnitLifecycleUtil.deleteLifecycle(this.loadUnitMultiInstanceProtoHook);
|
|
165
|
+
}
|
|
161
166
|
}
|
|
162
167
|
}
|
|
163
168
|
exports.Runner = Runner;
|
|
164
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
169
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUnVubmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL1J1bm5lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw4REFBMkY7QUFDM0Ysd0RBSzhCO0FBQzlCLHNEQU02QjtBQUM3QixzQ0FBK0Q7QUFDL0QsdURBQW9FO0FBQ3BFLHlDQUF3RDtBQUN4RCw4REFBc0c7QUFFdEcsdURBQW9EO0FBQ3BELDZEQUErRjtBQUMvRiwyREFBd0Q7QUFDeEQseUVBQXNFO0FBQ3RFLG1EQUFvRTtBQUNwRSxpREFBZ0U7QUFDaEUseUVBQXNFO0FBQ3RFLHFFQUFrRTtBQVlsRSxNQUFhLE1BQU07SUFtQmpCLFlBQVksR0FBVyxFQUFFLE9BQXVCO1FBSmhELGNBQVMsR0FBZSxFQUFFLENBQUM7UUFDM0Isc0JBQWlCLEdBQXVCLEVBQUUsQ0FBQztRQUl6QyxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUNmLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxtQ0FBZ0IsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdkUsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLFlBQVksR0FBRztZQUNsQixhQUFhLEVBQUUsQ0FBQztvQkFDZCxHQUFHLEVBQUUsSUFBSSw2QkFBYSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7aUJBQzNDLENBQUM7WUFDRixZQUFZLEVBQUUsRUFBRTtTQUNqQixDQUFDO1FBRUYsTUFBTSxhQUFhLEdBQTJCO1lBQzVDLE9BQU8sRUFBRSxJQUFJLENBQUMsR0FBRztTQUNsQixDQUFDO1FBQ0YsdUJBQXVCO1FBQ3ZCLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxHQUFHLENBQUM7Z0JBQ2pDLEdBQUcsRUFBRSxhQUFhO2FBQ25CLENBQUMsQ0FBQztRQUVILEtBQUssTUFBTSxTQUFTLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQzdDLE1B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
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@eggjs/tegg-standalone",
|
|
3
3
|
"description": "tegg standalone",
|
|
4
|
-
"version": "3.
|
|
4
|
+
"version": "3.19.0",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"egg",
|
|
7
7
|
"typescript",
|
|
@@ -38,16 +38,16 @@
|
|
|
38
38
|
"author": "killagu <killa123@126.com>",
|
|
39
39
|
"license": "MIT",
|
|
40
40
|
"dependencies": {
|
|
41
|
-
"@eggjs/egg-module-common": "^3.
|
|
42
|
-
"@eggjs/tegg": "^3.
|
|
43
|
-
"@eggjs/tegg-aop-runtime": "^3.
|
|
44
|
-
"@eggjs/tegg-background-task": "^3.
|
|
45
|
-
"@eggjs/tegg-common-util": "^3.
|
|
46
|
-
"@eggjs/tegg-dynamic-inject-runtime": "^3.
|
|
47
|
-
"@eggjs/tegg-lifecycle": "^3.
|
|
48
|
-
"@eggjs/tegg-loader": "^3.
|
|
49
|
-
"@eggjs/tegg-metadata": "^3.
|
|
50
|
-
"@eggjs/tegg-runtime": "^3.
|
|
41
|
+
"@eggjs/egg-module-common": "^3.19.0",
|
|
42
|
+
"@eggjs/tegg": "^3.19.0",
|
|
43
|
+
"@eggjs/tegg-aop-runtime": "^3.19.0",
|
|
44
|
+
"@eggjs/tegg-background-task": "^3.19.0",
|
|
45
|
+
"@eggjs/tegg-common-util": "^3.19.0",
|
|
46
|
+
"@eggjs/tegg-dynamic-inject-runtime": "^3.19.0",
|
|
47
|
+
"@eggjs/tegg-lifecycle": "^3.19.0",
|
|
48
|
+
"@eggjs/tegg-loader": "^3.19.0",
|
|
49
|
+
"@eggjs/tegg-metadata": "^3.19.0",
|
|
50
|
+
"@eggjs/tegg-runtime": "^3.19.0"
|
|
51
51
|
},
|
|
52
52
|
"publishConfig": {
|
|
53
53
|
"access": "public"
|
|
@@ -60,5 +60,5 @@
|
|
|
60
60
|
"ts-node": "^10.9.1",
|
|
61
61
|
"typescript": "^5.0.4"
|
|
62
62
|
},
|
|
63
|
-
"gitHead": "
|
|
63
|
+
"gitHead": "398549c20d57772a87f669cb4f817f37ce92a9c4"
|
|
64
64
|
}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { GraphNodeObj } from '@eggjs/tegg-common-util';
|
|
2
|
-
import { EggProtoImplClass, EggPrototypeName, QualifierInfo } from '@eggjs/tegg';
|
|
3
|
-
export interface ModuleConfig {
|
|
4
|
-
path: string;
|
|
5
|
-
}
|
|
6
|
-
export declare class ModuleNode implements GraphNodeObj {
|
|
7
|
-
readonly id: string;
|
|
8
|
-
readonly name: string;
|
|
9
|
-
readonly moduleConfig: ModuleConfig;
|
|
10
|
-
private clazzList;
|
|
11
|
-
static readModuleName(modulePath: string): string;
|
|
12
|
-
constructor(moduleConfig: ModuleConfig);
|
|
13
|
-
addClazz(clazz: EggProtoImplClass): void;
|
|
14
|
-
getClazzList(): readonly EggProtoImplClass[];
|
|
15
|
-
getPublicClazzList(): readonly EggProtoImplClass[];
|
|
16
|
-
toString(): string;
|
|
17
|
-
verifyQualifiers(clazz: EggProtoImplClass, qualifiers: QualifierInfo[]): boolean;
|
|
18
|
-
verifyQualifier(clazzQualifiers: QualifierInfo[], qualifier: QualifierInfo): boolean;
|
|
19
|
-
findImplementClazzList(objName: EggPrototypeName, qualifiers: QualifierInfo[], innerFind: boolean): EggProtoImplClass[];
|
|
20
|
-
}
|
|
21
|
-
export declare class StandaloneGraph {
|
|
22
|
-
private graph;
|
|
23
|
-
moduleConfigList: Array<ModuleConfig>;
|
|
24
|
-
constructor();
|
|
25
|
-
addNode(moduleNode: ModuleNode): void;
|
|
26
|
-
private findDependencyModule;
|
|
27
|
-
build(): void;
|
|
28
|
-
sort(): void;
|
|
29
|
-
}
|
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.StandaloneGraph = exports.ModuleNode = void 0;
|
|
7
|
-
const assert_1 = __importDefault(require("assert"));
|
|
8
|
-
const path_1 = __importDefault(require("path"));
|
|
9
|
-
const tegg_common_util_1 = require("@eggjs/tegg-common-util");
|
|
10
|
-
const tegg_1 = require("@eggjs/tegg");
|
|
11
|
-
class ModuleNode {
|
|
12
|
-
// TODO refactor to ModuleUtil
|
|
13
|
-
static readModuleName(modulePath) {
|
|
14
|
-
const pkgPath = path_1.default.join(modulePath, 'package.json');
|
|
15
|
-
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
16
|
-
const pkg = require(pkgPath);
|
|
17
|
-
(0, assert_1.default)(pkg.eggModule, `module config not found in package ${pkgPath}`);
|
|
18
|
-
const { name } = pkg.eggModule;
|
|
19
|
-
return name;
|
|
20
|
-
}
|
|
21
|
-
constructor(moduleConfig) {
|
|
22
|
-
this.moduleConfig = moduleConfig;
|
|
23
|
-
this.id = moduleConfig.path;
|
|
24
|
-
this.name = ModuleNode.readModuleName(moduleConfig.path);
|
|
25
|
-
this.clazzList = [];
|
|
26
|
-
}
|
|
27
|
-
addClazz(clazz) {
|
|
28
|
-
this.clazzList.push(clazz);
|
|
29
|
-
}
|
|
30
|
-
getClazzList() {
|
|
31
|
-
return this.clazzList;
|
|
32
|
-
}
|
|
33
|
-
getPublicClazzList() {
|
|
34
|
-
return this.clazzList.filter(clazz => tegg_1.PrototypeUtil.getInitType(clazz, {
|
|
35
|
-
unitPath: this.moduleConfig.path,
|
|
36
|
-
}) === tegg_1.AccessLevel.PUBLIC);
|
|
37
|
-
}
|
|
38
|
-
toString() {
|
|
39
|
-
return `${this.name}@${this.moduleConfig.path}`;
|
|
40
|
-
}
|
|
41
|
-
verifyQualifiers(clazz, qualifiers) {
|
|
42
|
-
const clazzQualifiers = tegg_1.QualifierUtil.getProtoQualifiers(clazz);
|
|
43
|
-
for (const qualifier of qualifiers) {
|
|
44
|
-
if (!this.verifyQualifier(clazzQualifiers, qualifier)) {
|
|
45
|
-
return false;
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
return true;
|
|
49
|
-
}
|
|
50
|
-
verifyQualifier(clazzQualifiers, qualifier) {
|
|
51
|
-
const selfQualifiers = clazzQualifiers.find(t => t.attribute === qualifier.attribute);
|
|
52
|
-
return (selfQualifiers === null || selfQualifiers === void 0 ? void 0 : selfQualifiers.value) === qualifier.value;
|
|
53
|
-
}
|
|
54
|
-
findImplementClazzList(objName, qualifiers, innerFind) {
|
|
55
|
-
const moduleQualifier = qualifiers.find(t => t.attribute === tegg_1.LoadUnitNameQualifierAttribute);
|
|
56
|
-
if (moduleQualifier && moduleQualifier.value !== this.name) {
|
|
57
|
-
return [];
|
|
58
|
-
}
|
|
59
|
-
const clazzList = innerFind ? this.clazzList : this.getPublicClazzList();
|
|
60
|
-
const implList = clazzList
|
|
61
|
-
.filter(clazz => tegg_1.PrototypeUtil.getObjNames(clazz, {
|
|
62
|
-
unitPath: this.moduleConfig.path,
|
|
63
|
-
}).includes(objName))
|
|
64
|
-
.filter(clazz => this.verifyQualifiers(clazz, qualifiers));
|
|
65
|
-
if (implList.length === 1) {
|
|
66
|
-
return implList;
|
|
67
|
-
}
|
|
68
|
-
const initTypeQualifiers = tegg_1.INIT_TYPE_TRY_ORDER.map(type => ({
|
|
69
|
-
attribute: tegg_1.InitTypeQualifierAttribute,
|
|
70
|
-
value: type,
|
|
71
|
-
}));
|
|
72
|
-
for (const initTypeQualifier of initTypeQualifiers) {
|
|
73
|
-
const initTypeList = implList.filter(clazz => this.verifyQualifiers(clazz, [initTypeQualifier]));
|
|
74
|
-
if (initTypeList.length === 1) {
|
|
75
|
-
return initTypeList;
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
return implList;
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
exports.ModuleNode = ModuleNode;
|
|
82
|
-
class StandaloneGraph {
|
|
83
|
-
constructor() {
|
|
84
|
-
this.graph = new tegg_common_util_1.Graph();
|
|
85
|
-
}
|
|
86
|
-
addNode(moduleNode) {
|
|
87
|
-
if (!this.graph.addVertex(new tegg_common_util_1.GraphNode(moduleNode))) {
|
|
88
|
-
throw new Error(`duplicate module: ${moduleNode}`);
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
findDependencyModule(objName, properqualifiers, protoQualifiers) {
|
|
92
|
-
var _a;
|
|
93
|
-
const nodes = Array.from(this.graph.nodes.values());
|
|
94
|
-
const hostModuleName = (_a = protoQualifiers.find(t => t.attribute === tegg_1.LoadUnitNameQualifierAttribute)) === null || _a === void 0 ? void 0 : _a.value;
|
|
95
|
-
return nodes.filter(node => {
|
|
96
|
-
// private 的类只能在当前 module 中被找到
|
|
97
|
-
const clazzList = node.val.findImplementClazzList(objName, properqualifiers, hostModuleName === node.val.name);
|
|
98
|
-
return clazzList.length;
|
|
99
|
-
});
|
|
100
|
-
}
|
|
101
|
-
build() {
|
|
102
|
-
for (const node of this.graph.nodes.values()) {
|
|
103
|
-
for (const clazz of node.val.getClazzList()) {
|
|
104
|
-
const injectObjects = tegg_1.PrototypeUtil.getInjectObjects(clazz);
|
|
105
|
-
for (const injectObject of injectObjects) {
|
|
106
|
-
const properqualifiers = tegg_1.QualifierUtil.getProperQualifiers(clazz, injectObject.refName);
|
|
107
|
-
const protoQualifiers = tegg_1.QualifierUtil.getProtoQualifiers(clazz);
|
|
108
|
-
const dependencyModules = this.findDependencyModule(injectObject.objName, properqualifiers, protoQualifiers);
|
|
109
|
-
for (const moduleNode of dependencyModules) {
|
|
110
|
-
if (node !== moduleNode) {
|
|
111
|
-
this.graph.addEdge(node, moduleNode);
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
sort() {
|
|
119
|
-
const loopPath = this.graph.loopPath();
|
|
120
|
-
if (loopPath) {
|
|
121
|
-
throw new Error('module has recursive deps: ' + loopPath);
|
|
122
|
-
}
|
|
123
|
-
this.moduleConfigList = this.graph.sort().map(t => t.val.moduleConfig);
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
exports.StandaloneGraph = StandaloneGraph;
|
|
127
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3RhbmRhbG9uZUdyYXBoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL1N0YW5kYWxvbmVHcmFwaC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxvREFBNEI7QUFDNUIsZ0RBQXdCO0FBQ3hCLDhEQUF5RTtBQUN6RSxzQ0FVcUI7QUFNckIsTUFBYSxVQUFVO0lBTXJCLDhCQUE4QjtJQUM5QixNQUFNLENBQUMsY0FBYyxDQUFDLFVBQWtCO1FBQ3RDLE1BQU0sT0FBTyxHQUFHLGNBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQ3RELDhEQUE4RDtRQUM5RCxNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDN0IsSUFBQSxnQkFBTSxFQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsc0NBQXNDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDdkUsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLEdBQUcsQ0FBQyxTQUFTLENBQUM7UUFDL0IsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsWUFBWSxZQUEwQjtRQUNwQyxJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztRQUNqQyxJQUFJLENBQUMsRUFBRSxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUM7UUFDNUIsSUFBSSxDQUFDLElBQUksR0FBRyxVQUFVLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6RCxJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsUUFBUSxDQUFDLEtBQXdCO1FBQy9CLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxZQUFZO1FBQ1YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsT0FBTyxJQUFJLENBQUMs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
|