zova-core 5.1.47 → 5.1.48
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/core/component/module.d.ts +1 -0
- package/dist/core/component/module.d.ts.map +1 -1
- package/dist/core/sys/module.d.ts +3 -1
- package/dist/core/sys/module.d.ts.map +1 -1
- package/dist/core/sys/sys.d.ts.map +1 -1
- package/dist/index.js +64 -26
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/src/core/component/module.ts +24 -8
- package/src/core/sys/module.ts +41 -17
- package/src/core/sys/sys.ts +4 -3
|
@@ -5,6 +5,7 @@ export declare class AppModule extends BeanSimple {
|
|
|
5
5
|
private modules;
|
|
6
6
|
private mainInstances;
|
|
7
7
|
private monkeyInstances;
|
|
8
|
+
private _ensureModulesMeta;
|
|
8
9
|
get<K extends TypeBeanScopeRecordKeys>(moduleName: K, forceLoad?: boolean): IModule | undefined;
|
|
9
10
|
get(moduleName: string, forceLoad?: boolean): IModule | undefined;
|
|
10
11
|
get(moduleName: IModuleInfo, forceLoad?: boolean): IModule | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../src/core/component/module.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAMhE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../src/core/component/module.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAMhE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAWlE,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAItD,qBAAa,SAAU,SAAQ,UAAU;IACvC,OAAO,CAAC,OAAO,CAAmD;IAClE,OAAO,CAAC,aAAa,CAAmC;IACxD,OAAO,CAAC,eAAe,CAAsE;IAE7F,OAAO,CAAC,kBAAkB;IAe1B,GAAG,CAAC,CAAC,SAAS,uBAAuB,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS;IAC/F,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS;IACjE,GAAG,CAAC,UAAU,EAAE,WAAW,EAAE,SAAS,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS;IAuBhE,GAAG,CAAC,CAAC,SAAS,uBAAuB,EAAE,UAAU,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IACvE,GAAG,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IACzC,GAAG,CAAC,UAAU,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IAqBpD,MAAM,CAAC,CAAC,SAAS,uBAAuB,EAAE,UAAU,EAAE,CAAC,GAAG,OAAO;IACjE,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IACnC,MAAM,CAAC,UAAU,EAAE,WAAW,GAAG,OAAO;YAK1B,oBAAoB;YAepB,QAAQ;YA8BR,aAAa;YAsBb,kBAAkB;IAIhC,OAAO,CAAC,mBAAmB;CA8G5B"}
|
|
@@ -3,10 +3,12 @@ import type { TypeBeanScopeRecordKeys } from '../../bean/type.ts';
|
|
|
3
3
|
import type { PluginZovaModulesMeta } from '../../types/index.ts';
|
|
4
4
|
import { BeanSimple } from '../../bean/beanSimple.ts';
|
|
5
5
|
export declare class SysModule extends BeanSimple {
|
|
6
|
-
modulesMeta: PluginZovaModulesMeta;
|
|
6
|
+
modulesMeta: PluginZovaModulesMeta | undefined;
|
|
7
7
|
private modules;
|
|
8
8
|
private mainInstances;
|
|
9
9
|
private monkeyInstances;
|
|
10
|
+
getModulesMeta(): PluginZovaModulesMeta | undefined;
|
|
11
|
+
private _ensureModulesMeta;
|
|
10
12
|
get<K extends TypeBeanScopeRecordKeys>(moduleName: K): IModule | undefined;
|
|
11
13
|
get(moduleName: string): IModule | undefined;
|
|
12
14
|
get(moduleName: IModuleInfo): IModule | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../src/core/sys/module.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAMhE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,KAAK,EAKV,qBAAqB,EAEtB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAKtD,qBAAa,SAAU,SAAQ,UAAU;IAChC,WAAW,EAAE,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../src/core/sys/module.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAMhE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,KAAK,EAKV,qBAAqB,EAEtB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAKtD,qBAAa,SAAU,SAAQ,UAAU;IAChC,WAAW,EAAE,qBAAqB,GAAG,SAAS,CAAC;IACtD,OAAO,CAAC,OAAO,CAAgD;IAC/D,OAAO,CAAC,aAAa,CAAsC;IAC3D,OAAO,CAAC,eAAe,CAAqD;IAmBrE,cAAc,IAAI,qBAAqB,GAAG,SAAS;IAI1D,OAAO,CAAC,kBAAkB;IAQ1B,GAAG,CAAC,CAAC,SAAS,uBAAuB,EAAE,UAAU,EAAE,CAAC,GAAG,OAAO,GAAG,SAAS;IAC1E,GAAG,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAC5C,GAAG,CAAC,UAAU,EAAE,WAAW,GAAG,OAAO,GAAG,SAAS;IAmB3C,GAAG,CAAC,CAAC,SAAS,uBAAuB,EAAE,UAAU,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IACvE,GAAG,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IACzC,GAAG,CAAC,UAAU,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IAqBpD,MAAM,CAAC,CAAC,SAAS,uBAAuB,EAAE,UAAU,EAAE,CAAC,GAAG,OAAO;IACjE,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IACnC,MAAM,CAAC,UAAU,EAAE,WAAW,GAAG,OAAO;YAa1B,kCAAkC;IAqBnC,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE;YAyBhC,oBAAoB;YAiBpB,iBAAiB;YAyCjB,aAAa;YA2Bb,kBAAkB;IAOhC,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,kBAAkB;YAUZ,eAAe;CAyG9B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sys.d.ts","sourceRoot":"","sources":["../../../src/core/sys/sys.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAElD,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAK5D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,OAAO,EAAc,OAAO,EAAE,MAAM,WAAW,CAAC;AAEhD,QAAA,MAAM,0BAA0B,eAAuC,CAAC;AACxE,QAAA,MAAM,cAAc,eAA2B,CAAC;AAEhD,qBAAa,OAAO;IAClB,OAAO,CAAC,CAAC,0BAA0B,CAAC,CAA4B;IAChE,OAAO,CAAC,CAAC,cAAc,CAAC,CAAU;IAClC,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,UAAU,CAAC;IACnB,cAAc,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IACpC,GAAG,EAAE,aAAa,CAAC;IACnB,QAAQ,EAAE,YAAY,CAAC;;YAsBT,gBAAgB;IAqC9B,OAAO,CAAC,UAAU;
|
|
1
|
+
{"version":3,"file":"sys.d.ts","sourceRoot":"","sources":["../../../src/core/sys/sys.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAElD,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAK5D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,OAAO,EAAc,OAAO,EAAE,MAAM,WAAW,CAAC;AAEhD,QAAA,MAAM,0BAA0B,eAAuC,CAAC;AACxE,QAAA,MAAM,cAAc,eAA2B,CAAC;AAEhD,qBAAa,OAAO;IAClB,OAAO,CAAC,CAAC,0BAA0B,CAAC,CAA4B;IAChE,OAAO,CAAC,CAAC,cAAc,CAAC,CAAU;IAClC,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,UAAU,CAAC;IACnB,cAAc,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IACpC,GAAG,EAAE,aAAa,CAAC;IACnB,QAAQ,EAAE,YAAY,CAAC;;YAsBT,gBAAgB;IAqC9B,OAAO,CAAC,UAAU;IAkBX,KAAK;YAeE,cAAc;IAS5B,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,mBAAmB;IAQ3B,OAAO,CAAC,kBAAkB;CAM3B;AAcD,eAAO,MAAM,GAAG,SAAgB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -2919,7 +2919,18 @@ class SysModule extends BeanSimple {
|
|
|
2919
2919
|
dispose() {
|
|
2920
2920
|
this.modulesMeta = undefined;
|
|
2921
2921
|
}
|
|
2922
|
+
getModulesMeta() {
|
|
2923
|
+
return this.modulesMeta;
|
|
2924
|
+
}
|
|
2925
|
+
_ensureModulesMeta() {
|
|
2926
|
+
const modulesMeta = this.modulesMeta;
|
|
2927
|
+
if (!modulesMeta) {
|
|
2928
|
+
throw new Error('module registry has been disposed');
|
|
2929
|
+
}
|
|
2930
|
+
return modulesMeta;
|
|
2931
|
+
}
|
|
2922
2932
|
get(moduleName) {
|
|
2933
|
+
if (!this.modulesMeta) return undefined;
|
|
2923
2934
|
// module info
|
|
2924
2935
|
if (!moduleName) return undefined;
|
|
2925
2936
|
const moduleInfo = typeof moduleName === 'string' ? ModuleInfo.parseInfo(moduleName) : moduleName;
|
|
@@ -2943,8 +2954,9 @@ class SysModule extends BeanSimple {
|
|
|
2943
2954
|
// should not try check get directly
|
|
2944
2955
|
// const module = this.getOnly(relativeName);
|
|
2945
2956
|
// if (module) return module;
|
|
2957
|
+
const modulesMeta = this._ensureModulesMeta();
|
|
2946
2958
|
// module
|
|
2947
|
-
const moduleRepo =
|
|
2959
|
+
const moduleRepo = modulesMeta.modules[relativeName];
|
|
2948
2960
|
if (!moduleRepo) throw new Error(`module not exists: ${relativeName}`);
|
|
2949
2961
|
// install
|
|
2950
2962
|
await this._install(relativeName, moduleRepo);
|
|
@@ -2952,17 +2964,20 @@ class SysModule extends BeanSimple {
|
|
|
2952
2964
|
return moduleRepo;
|
|
2953
2965
|
}
|
|
2954
2966
|
exists(moduleName) {
|
|
2967
|
+
const modulesMeta = this.modulesMeta;
|
|
2968
|
+
if (!modulesMeta) return false;
|
|
2955
2969
|
// module info
|
|
2956
2970
|
if (!moduleName) return false;
|
|
2957
2971
|
const moduleInfo = typeof moduleName === 'string' ? ModuleInfo.parseInfo(moduleName) : moduleName;
|
|
2958
2972
|
if (!moduleInfo) throw new Error(`invalid module name: ${moduleName}`);
|
|
2959
|
-
const moduleRepo =
|
|
2973
|
+
const moduleRepo = modulesMeta.modules[moduleInfo.relativeName];
|
|
2960
2974
|
return !!moduleRepo;
|
|
2961
2975
|
}
|
|
2962
2976
|
async _loadAllMonkeysAndSyncsAndPreloads() {
|
|
2977
|
+
const modulesMeta = this._ensureModulesMeta();
|
|
2963
2978
|
const moduleNames = [];
|
|
2964
|
-
for (const moduleName of
|
|
2965
|
-
const module =
|
|
2979
|
+
for (const moduleName of modulesMeta.moduleNames) {
|
|
2980
|
+
const module = modulesMeta.modules[moduleName];
|
|
2966
2981
|
const info = module.info;
|
|
2967
2982
|
const shouldLoad = process.env.SERVER || info.capabilities?.monkey || info.capabilities?.sync || info.capabilities?.preload;
|
|
2968
2983
|
if (shouldLoad) {
|
|
@@ -2976,10 +2991,11 @@ class SysModule extends BeanSimple {
|
|
|
2976
2991
|
}
|
|
2977
2992
|
async loadModules(moduleNames) {
|
|
2978
2993
|
if (moduleNames.length === 0) return;
|
|
2994
|
+
const modulesMeta = this._ensureModulesMeta();
|
|
2979
2995
|
const promises = [];
|
|
2980
2996
|
const moduleNamesLoading = [];
|
|
2981
2997
|
for (const moduleName of moduleNames) {
|
|
2982
|
-
const module =
|
|
2998
|
+
const module = modulesMeta.modules[moduleName];
|
|
2983
2999
|
if (!module) throw new Error(`module not found: ${moduleName}`);
|
|
2984
3000
|
const moduleResource = module.resource;
|
|
2985
3001
|
if (typeof moduleResource === 'function') {
|
|
@@ -2994,25 +3010,27 @@ class SysModule extends BeanSimple {
|
|
|
2994
3010
|
const modulesResource = await Promise.all(promises);
|
|
2995
3011
|
for (let i = 0; i < modulesResource.length; i++) {
|
|
2996
3012
|
const moduleName = moduleNamesLoading[i];
|
|
2997
|
-
|
|
3013
|
+
modulesMeta.modules[moduleName].resource = modulesResource[i];
|
|
2998
3014
|
}
|
|
2999
3015
|
}
|
|
3000
3016
|
async _requireAllSpecifics(capabilityName) {
|
|
3001
|
-
const
|
|
3002
|
-
|
|
3017
|
+
const modulesMeta = this._ensureModulesMeta();
|
|
3018
|
+
const moduleNames = modulesMeta.moduleNames.filter(moduleName => {
|
|
3019
|
+
const module = modulesMeta.modules[moduleName];
|
|
3003
3020
|
return module.info.capabilities?.[capabilityName];
|
|
3004
3021
|
});
|
|
3005
3022
|
if (moduleNames.length > 0) {
|
|
3006
3023
|
this.sys.meta.logger.child('module', 'default').debug(`modules ${capabilityName}: ${moduleNames.join(',')}`);
|
|
3007
3024
|
}
|
|
3008
3025
|
for (const moduleName of moduleNames) {
|
|
3009
|
-
const module =
|
|
3026
|
+
const module = modulesMeta.modules[moduleName];
|
|
3010
3027
|
await this._install(moduleName, module);
|
|
3011
3028
|
}
|
|
3012
3029
|
}
|
|
3013
3030
|
async _requireAllOthers() {
|
|
3014
|
-
|
|
3015
|
-
|
|
3031
|
+
const modulesMeta = this._ensureModulesMeta();
|
|
3032
|
+
for (const moduleName of modulesMeta.moduleNames) {
|
|
3033
|
+
const module = modulesMeta.modules[moduleName];
|
|
3016
3034
|
const info = module.info;
|
|
3017
3035
|
const shouldInstall = !info.capabilities?.monkey && !info.capabilities?.sync && !info.capabilities?.preload;
|
|
3018
3036
|
if (shouldInstall) {
|
|
@@ -3098,6 +3116,8 @@ class SysModule extends BeanSimple {
|
|
|
3098
3116
|
|
|
3099
3117
|
/** @internal */
|
|
3100
3118
|
async _monkeyModule(order, monkeyName, moduleTarget, ...monkeyData) {
|
|
3119
|
+
const modulesMeta = this.modulesMeta;
|
|
3120
|
+
if (!modulesMeta) return;
|
|
3101
3121
|
// self: main
|
|
3102
3122
|
if (moduleTarget) {
|
|
3103
3123
|
const mainInstance = this.mainInstances[moduleTarget.info.relativeName];
|
|
@@ -3106,8 +3126,8 @@ class SysModule extends BeanSimple {
|
|
|
3106
3126
|
}
|
|
3107
3127
|
}
|
|
3108
3128
|
// module monkey
|
|
3109
|
-
await forEach(
|
|
3110
|
-
const moduleMonkey =
|
|
3129
|
+
await forEach(modulesMeta.moduleNames, order, async key => {
|
|
3130
|
+
const moduleMonkey = modulesMeta.modules[key];
|
|
3111
3131
|
if (moduleMonkey.info.capabilities?.monkey) {
|
|
3112
3132
|
const monkeyInstance = this.monkeyInstances[key];
|
|
3113
3133
|
if (monkeyInstance && monkeyInstance[monkeyName]) {
|
|
@@ -3136,6 +3156,8 @@ class SysModule extends BeanSimple {
|
|
|
3136
3156
|
|
|
3137
3157
|
/** @internal */
|
|
3138
3158
|
_monkeyModuleSync(order, monkeyName, moduleTarget, ...monkeyData) {
|
|
3159
|
+
const modulesMeta = this.modulesMeta;
|
|
3160
|
+
if (!modulesMeta) return;
|
|
3139
3161
|
// self: main
|
|
3140
3162
|
if (moduleTarget) {
|
|
3141
3163
|
const mainInstance = this.mainInstances[moduleTarget.info.relativeName];
|
|
@@ -3144,8 +3166,8 @@ class SysModule extends BeanSimple {
|
|
|
3144
3166
|
}
|
|
3145
3167
|
}
|
|
3146
3168
|
// module monkey
|
|
3147
|
-
forEachSync(
|
|
3148
|
-
const moduleMonkey =
|
|
3169
|
+
forEachSync(modulesMeta.moduleNames, order, key => {
|
|
3170
|
+
const moduleMonkey = modulesMeta.modules[key];
|
|
3149
3171
|
if (moduleMonkey.info.capabilities?.monkey) {
|
|
3150
3172
|
const monkeyInstance = this.monkeyInstances[key];
|
|
3151
3173
|
if (monkeyInstance && monkeyInstance[monkeyName]) {
|
|
@@ -3312,11 +3334,12 @@ class ZovaSys {
|
|
|
3312
3334
|
viteHot.on('vite:beforeFullReload', hook);
|
|
3313
3335
|
}
|
|
3314
3336
|
if (process.env.CLIENT && typeof window !== 'undefined') {
|
|
3315
|
-
const hook =
|
|
3337
|
+
const hook = event => {
|
|
3338
|
+
if (event.persisted) return;
|
|
3316
3339
|
this.close();
|
|
3317
|
-
window.removeEventListener('
|
|
3340
|
+
window.removeEventListener('pagehide', hook);
|
|
3318
3341
|
};
|
|
3319
|
-
window.addEventListener('
|
|
3342
|
+
window.addEventListener('pagehide', hook);
|
|
3320
3343
|
}
|
|
3321
3344
|
}
|
|
3322
3345
|
close() {
|
|
@@ -3867,6 +3890,14 @@ class AppModule extends BeanSimple {
|
|
|
3867
3890
|
this.mainInstances = {};
|
|
3868
3891
|
this.monkeyInstances = {};
|
|
3869
3892
|
}
|
|
3893
|
+
_ensureModulesMeta() {
|
|
3894
|
+
const modulesMeta = this.sys.meta.module.getModulesMeta();
|
|
3895
|
+
if (!modulesMeta) {
|
|
3896
|
+
throw new Error('module registry has been disposed');
|
|
3897
|
+
}
|
|
3898
|
+
return modulesMeta;
|
|
3899
|
+
}
|
|
3900
|
+
|
|
3870
3901
|
/** @internal */
|
|
3871
3902
|
async initialize() {
|
|
3872
3903
|
await this._requireAllSpecifics('preload');
|
|
@@ -3874,6 +3905,7 @@ class AppModule extends BeanSimple {
|
|
|
3874
3905
|
await this._requireAllSpecifics('sync');
|
|
3875
3906
|
}
|
|
3876
3907
|
get(moduleName, forceLoad) {
|
|
3908
|
+
if (!this.sys.meta.module.getModulesMeta()) return undefined;
|
|
3877
3909
|
// module info
|
|
3878
3910
|
if (!moduleName) return undefined;
|
|
3879
3911
|
const moduleInfo = typeof moduleName === 'string' ? ModuleInfo.parseInfo(moduleName) : moduleName;
|
|
@@ -3901,8 +3933,9 @@ class AppModule extends BeanSimple {
|
|
|
3901
3933
|
// should not try check get directly
|
|
3902
3934
|
// const module = this.getOnly(relativeName);
|
|
3903
3935
|
// if (module) return module;
|
|
3936
|
+
const modulesMeta = this._ensureModulesMeta();
|
|
3904
3937
|
// module
|
|
3905
|
-
const moduleRepo =
|
|
3938
|
+
const moduleRepo = modulesMeta.modules[relativeName];
|
|
3906
3939
|
if (!moduleRepo) throw new Error(`module not exists: ${relativeName}`);
|
|
3907
3940
|
// install
|
|
3908
3941
|
await this._install(relativeName, moduleRepo);
|
|
@@ -3913,15 +3946,16 @@ class AppModule extends BeanSimple {
|
|
|
3913
3946
|
return this.sys.meta.module.exists(moduleName);
|
|
3914
3947
|
}
|
|
3915
3948
|
async _requireAllSpecifics(capabilityName) {
|
|
3916
|
-
const
|
|
3917
|
-
|
|
3949
|
+
const modulesMeta = this._ensureModulesMeta();
|
|
3950
|
+
const moduleNames = modulesMeta.moduleNames.filter(moduleName => {
|
|
3951
|
+
const module = modulesMeta.modules[moduleName];
|
|
3918
3952
|
return module.info.capabilities?.[capabilityName];
|
|
3919
3953
|
});
|
|
3920
3954
|
// if (moduleNames.length > 0) {
|
|
3921
3955
|
// this.sys.meta.logger.child('module', 'default').debug(`app modules: ${capabilityName}: ${moduleNames.join(',')}`);
|
|
3922
3956
|
// }
|
|
3923
3957
|
for (const moduleName of moduleNames) {
|
|
3924
|
-
const module =
|
|
3958
|
+
const module = modulesMeta.modules[moduleName];
|
|
3925
3959
|
await this._install(moduleName, module);
|
|
3926
3960
|
}
|
|
3927
3961
|
}
|
|
@@ -3976,6 +4010,8 @@ class AppModule extends BeanSimple {
|
|
|
3976
4010
|
|
|
3977
4011
|
/** @internal */
|
|
3978
4012
|
async _monkeyModule(order, monkeyName, moduleTarget, ...monkeyData) {
|
|
4013
|
+
const modulesMeta = this.sys.meta.module.getModulesMeta();
|
|
4014
|
+
if (!modulesMeta) return;
|
|
3979
4015
|
// self: main
|
|
3980
4016
|
if (moduleTarget) {
|
|
3981
4017
|
const mainInstance = this.mainInstances[moduleTarget.info.relativeName];
|
|
@@ -3987,8 +4023,8 @@ class AppModule extends BeanSimple {
|
|
|
3987
4023
|
}
|
|
3988
4024
|
}
|
|
3989
4025
|
// module monkey
|
|
3990
|
-
await forEach(
|
|
3991
|
-
const moduleMonkey =
|
|
4026
|
+
await forEach(modulesMeta.moduleNames, order, async key => {
|
|
4027
|
+
const moduleMonkey = modulesMeta.modules[key];
|
|
3992
4028
|
if (moduleMonkey.info.capabilities?.monkey) {
|
|
3993
4029
|
const monkeyInstance = this.monkeyInstances[key];
|
|
3994
4030
|
if (monkeyInstance && monkeyInstance[monkeyName]) {
|
|
@@ -4021,6 +4057,8 @@ class AppModule extends BeanSimple {
|
|
|
4021
4057
|
|
|
4022
4058
|
/** @internal */
|
|
4023
4059
|
_monkeyModuleSync(order, monkeyName, moduleTarget, ...monkeyData) {
|
|
4060
|
+
const modulesMeta = this.sys.meta.module.getModulesMeta();
|
|
4061
|
+
if (!modulesMeta) return;
|
|
4024
4062
|
// self: main
|
|
4025
4063
|
if (moduleTarget) {
|
|
4026
4064
|
const mainInstance = this.mainInstances[moduleTarget.info.relativeName];
|
|
@@ -4032,8 +4070,8 @@ class AppModule extends BeanSimple {
|
|
|
4032
4070
|
}
|
|
4033
4071
|
}
|
|
4034
4072
|
// module monkey
|
|
4035
|
-
forEachSync(
|
|
4036
|
-
const moduleMonkey =
|
|
4073
|
+
forEachSync(modulesMeta.moduleNames, order, key => {
|
|
4074
|
+
const moduleMonkey = modulesMeta.modules[key];
|
|
4037
4075
|
if (moduleMonkey.info.capabilities?.monkey) {
|
|
4038
4076
|
const monkeyInstance = this.monkeyInstances[key];
|
|
4039
4077
|
if (monkeyInstance && monkeyInstance[monkeyName]) {
|