@toijs/modular 1.0.2 → 1.0.3
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/launcher/services/launcher.service.d.ts +7 -1
- package/dist/launcher/services/launcher.service.d.ts.map +1 -1
- package/dist/launcher/services/launcher.service.js +27 -8
- package/dist/launcher/services/launcher.service.js.map +1 -1
- package/dist/launcher/types/module.type.d.ts +1 -0
- package/dist/launcher/types/module.type.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -11,7 +11,7 @@ export declare class Launcher {
|
|
|
11
11
|
shell: Shell;
|
|
12
12
|
config: Config;
|
|
13
13
|
options: StartOptions;
|
|
14
|
-
instances: Module
|
|
14
|
+
instances: Map<string, Module>;
|
|
15
15
|
constructor();
|
|
16
16
|
/**
|
|
17
17
|
* Attach a capability onto the launcher (and optionally register it in DI).
|
|
@@ -25,6 +25,12 @@ export declare class Launcher {
|
|
|
25
25
|
* @param module - The module to register
|
|
26
26
|
*/
|
|
27
27
|
modules(modules: ModuleFactory[]): this;
|
|
28
|
+
/**
|
|
29
|
+
* Resolve the module instances
|
|
30
|
+
* @param modules - The modules to resolve
|
|
31
|
+
* @returns The module instances
|
|
32
|
+
*/
|
|
33
|
+
private resolveModuleInstances;
|
|
28
34
|
/**
|
|
29
35
|
* Start the application
|
|
30
36
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"launcher.service.d.ts","sourceRoot":"","sources":["../../../src/launcher/services/launcher.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAExC,qBAAa,QAAQ;IACZ,IAAI,EAAE,IAAI,CAAC;IACX,QAAQ,EAAE,QAAQ,CAAC;IACnB,SAAS,EAAE,SAAS,CAAC;IACrB,KAAK,EAAE,KAAK,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,YAAY,CAEV;IACX,SAAS,EAAE,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"launcher.service.d.ts","sourceRoot":"","sources":["../../../src/launcher/services/launcher.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAExC,qBAAa,QAAQ;IACZ,IAAI,EAAE,IAAI,CAAC;IACX,QAAQ,EAAE,QAAQ,CAAC;IACnB,SAAS,EAAE,SAAS,CAAC;IACrB,KAAK,EAAE,KAAK,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,YAAY,CAEV;IACX,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAa;;IA8BlD;;;;;OAKG;IACH,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,EACxB,GAAG,EAAE,CAAC,EACN,KAAK,EAAE,CAAC,EACR,KAAK,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,GACxB,IAAI,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;IAoBtB;;;OAGG;IACH,OAAO,CAAC,OAAO,EAAE,aAAa,EAAE;IAKhC;;;;OAIG;YACW,sBAAsB;IAsBpC;;OAEG;IACG,KAAK;CAmBZ"}
|
|
@@ -12,7 +12,7 @@ export class Launcher {
|
|
|
12
12
|
options = {
|
|
13
13
|
modules: [],
|
|
14
14
|
};
|
|
15
|
-
instances =
|
|
15
|
+
instances = new Map();
|
|
16
16
|
constructor() {
|
|
17
17
|
this.container = new Container();
|
|
18
18
|
this.task = new Task();
|
|
@@ -70,6 +70,28 @@ export class Launcher {
|
|
|
70
70
|
this.options.modules.push(...modules);
|
|
71
71
|
return this;
|
|
72
72
|
}
|
|
73
|
+
/**
|
|
74
|
+
* Resolve the module instances
|
|
75
|
+
* @param modules - The modules to resolve
|
|
76
|
+
* @returns The module instances
|
|
77
|
+
*/
|
|
78
|
+
async resolveModuleInstances(modules, instances = []) {
|
|
79
|
+
for (const module of modules) {
|
|
80
|
+
const moduleInstance = module(this);
|
|
81
|
+
// If the module is already registered, skip it
|
|
82
|
+
if (this.instances.has(moduleInstance.name) || !moduleInstance.name) {
|
|
83
|
+
continue;
|
|
84
|
+
}
|
|
85
|
+
// Register the module instance
|
|
86
|
+
this.instances.set(moduleInstance.name, moduleInstance);
|
|
87
|
+
instances.push(moduleInstance);
|
|
88
|
+
// Resolve the module instances
|
|
89
|
+
if (moduleInstance.dependencies) {
|
|
90
|
+
instances = await this.resolveModuleInstances(moduleInstance.dependencies, instances);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
return instances;
|
|
94
|
+
}
|
|
73
95
|
/**
|
|
74
96
|
* Start the application
|
|
75
97
|
*/
|
|
@@ -77,17 +99,14 @@ export class Launcher {
|
|
|
77
99
|
if (this.options.modules.length === 0) {
|
|
78
100
|
throw new Error("No modules registered");
|
|
79
101
|
}
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
this.instances.push(moduleInstance);
|
|
83
|
-
}
|
|
84
|
-
for (const instance of this.instances) {
|
|
102
|
+
let instances = await this.resolveModuleInstances(this.options.modules);
|
|
103
|
+
for (const instance of instances) {
|
|
85
104
|
instance.prepare?.();
|
|
86
105
|
}
|
|
87
|
-
for (const instance of
|
|
106
|
+
for (const instance of instances) {
|
|
88
107
|
instance.register?.();
|
|
89
108
|
}
|
|
90
|
-
for (const instance of
|
|
109
|
+
for (const instance of instances) {
|
|
91
110
|
instance.ready?.();
|
|
92
111
|
}
|
|
93
112
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"launcher.service.js","sourceRoot":"","sources":["../../../src/launcher/services/launcher.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAuB,MAAM,UAAU,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAExC,MAAM,OAAO,QAAQ;IACZ,IAAI,CAAO;IACX,QAAQ,CAAW;IACnB,SAAS,CAAY;IACrB,KAAK,CAAQ;IACb,MAAM,CAAS;IACf,OAAO,GAAiB;QAC7B,OAAO,EAAE,EAAqB;KACf,CAAC;IACX,SAAS,
|
|
1
|
+
{"version":3,"file":"launcher.service.js","sourceRoot":"","sources":["../../../src/launcher/services/launcher.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.type.d.ts","sourceRoot":"","sources":["../../../src/launcher/types/module.type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC;;;;;;GAMG;AACH,MAAM,MAAM,MAAM,GAAG;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;CACpB,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,QAAQ,EAAE,QAAQ,KAAK,MAAM,CAAC;AAE3D;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,OAAO,EAAE,aAAa,EAAE,CAAC;CAC1B,CAAC"}
|
|
1
|
+
{"version":3,"file":"module.type.d.ts","sourceRoot":"","sources":["../../../src/launcher/types/module.type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC;;;;;;GAMG;AACH,MAAM,MAAM,MAAM,GAAG;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,aAAa,EAAE,CAAC;IAC/B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;CACpB,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,QAAQ,EAAE,QAAQ,KAAK,MAAM,CAAC;AAE3D;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,OAAO,EAAE,aAAa,EAAE,CAAC;CAC1B,CAAC"}
|