vona-core 5.0.123 → 5.0.125

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.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import '@cabloy/json5';
2
- import { combineApiPathControllerAndActionRaw, combineApiPathControllerAndAction, combineApiPath, combineResourceName, sleep, isUndefined, isClass, isNilOrEmptyString, evaluateExpressions, catchErrorSync, isEmptyObject, catchError, hashkey } from '@cabloy/utils';
2
+ import { combineApiPathControllerAndActionRaw, combineApiPathControllerAndAction, combineApiPath, combineResourceName, forEach, forEachSync, sleep, isUndefined, isClass, isNilOrEmptyString, evaluateExpressions, catchErrorSync, isEmptyObject, catchError, hashkey } from '@cabloy/utils';
3
3
  import { toLowerCaseFirstChar, splitWords } from '@cabloy/word-utils';
4
4
  import path from 'node:path';
5
5
  import crypto from 'node:crypto';
@@ -168,15 +168,14 @@ class AppUtil extends BeanSimple {
168
168
  }
169
169
  return error;
170
170
  }
171
- async monkeyModule(ebAppMonkey, ebModulesMonkey, monkeyName, moduleTarget, ...monkeyData) {
171
+ async monkeyModule(ebAppMonkey, ebModulesMonkey, order, monkeyName, moduleTarget, ...monkeyData) {
172
172
  // self: main
173
173
  if (moduleTarget && moduleTarget.mainInstance && moduleTarget.mainInstance[monkeyName]) {
174
174
  // @ts-ignore ignore
175
175
  await moduleTarget.mainInstance[monkeyName](...monkeyData);
176
176
  }
177
177
  // module monkey
178
- for (const key in ebModulesMonkey) {
179
- const moduleMonkey = ebModulesMonkey[key];
178
+ await forEach(ebModulesMonkey, order, async moduleMonkey => {
180
179
  if (moduleMonkey.monkeyInstance && moduleMonkey.monkeyInstance[monkeyName]) {
181
180
  if (moduleTarget === undefined) {
182
181
  // @ts-ignore ignore
@@ -186,7 +185,7 @@ class AppUtil extends BeanSimple {
186
185
  await moduleMonkey.monkeyInstance[monkeyName](moduleTarget, ...monkeyData);
187
186
  }
188
187
  }
189
- }
188
+ });
190
189
  // app monkey
191
190
  if (ebAppMonkey && ebAppMonkey[monkeyName]) {
192
191
  if (moduleTarget === undefined) {
@@ -196,15 +195,14 @@ class AppUtil extends BeanSimple {
196
195
  }
197
196
  }
198
197
  }
199
- monkeyModuleSync(ebAppMonkey, ebModulesMonkey, monkeyName, moduleTarget, ...monkeyData) {
198
+ monkeyModuleSync(ebAppMonkey, ebModulesMonkey, order, monkeyName, moduleTarget, ...monkeyData) {
200
199
  // self: main
201
200
  if (moduleTarget && moduleTarget.mainInstance && moduleTarget.mainInstance[monkeyName]) {
202
201
  // @ts-ignore ignore
203
202
  moduleTarget.mainInstance[monkeyName](...monkeyData);
204
203
  }
205
204
  // module monkey
206
- for (const key in ebModulesMonkey) {
207
- const moduleMonkey = ebModulesMonkey[key];
205
+ forEachSync(ebModulesMonkey, order, async moduleMonkey => {
208
206
  if (moduleMonkey.monkeyInstance && moduleMonkey.monkeyInstance[monkeyName]) {
209
207
  if (moduleTarget === undefined) {
210
208
  // @ts-ignore ignore
@@ -214,7 +212,7 @@ class AppUtil extends BeanSimple {
214
212
  moduleMonkey.monkeyInstance[monkeyName](moduleTarget, ...monkeyData);
215
213
  }
216
214
  }
217
- }
215
+ });
218
216
  // app monkey
219
217
  if (ebAppMonkey && ebAppMonkey[monkeyName]) {
220
218
  if (moduleTarget === undefined) {
@@ -740,7 +738,7 @@ class BeanBase extends BeanBaseSimple {
740
738
  return this[SymbolLoggerChildren][clientName][childName];
741
739
  }
742
740
  $mutate(args) {
743
- this.app.meta.hmr?.mutateBeanInstance(this.$beanFullName, this[SymbolBeanInstanceKey], args);
741
+ this.app.meta.hmr.mutateBeanInstance(this.$beanFullName, this[SymbolBeanInstanceKey], args);
744
742
  }
745
743
  get $scope() {
746
744
  return this.app.meta.scopeContainer;
@@ -1055,7 +1053,7 @@ class BeanContainer {
1055
1053
  const key = __getSelectorKey(fullName, withSelector, args[0]);
1056
1054
  __setPropertyValue(beanInstance, SymbolBeanInstanceKey, key);
1057
1055
  this[SymbolBeanContainerInstances][key] = beanInstance;
1058
- this.containerType === 'app' && this.app.meta.hmr?.addBeanInstance(fullName, key, args, withSelector);
1056
+ this.containerType === 'app' && this.app.meta.hmr.addBeanInstance(fullName, key, args, withSelector);
1059
1057
  }
1060
1058
  }
1061
1059
  // init
@@ -1114,7 +1112,7 @@ class BeanContainer {
1114
1112
  if (!beanInstance[SymbolBeanInstancePropsLazy]) beanInstance[SymbolBeanInstancePropsLazy] = {};
1115
1113
  if (!beanInstance[SymbolBeanInstancePropsLazy][prop]) {
1116
1114
  beanInstance[SymbolBeanInstancePropsLazy][prop] = self._injectBeanInstanceProp(beanInstance, targetBeanFullName, useOptions);
1117
- self.containerType === 'app' && self.app.meta.hmr?.addBeanInstanceProp(beanInstance, prop, targetBeanFullName);
1115
+ self.containerType === 'app' && self.app.meta.hmr.addBeanInstanceProp(beanInstance, prop, targetBeanFullName);
1118
1116
  }
1119
1117
  return beanInstance[SymbolBeanInstancePropsLazy][prop];
1120
1118
  }
@@ -1685,7 +1683,9 @@ const errorsInternal = {
1685
1683
  '508': 'Loop Detected',
1686
1684
  '509': 'Bandwidth Limit Exceeded',
1687
1685
  '510': 'Not Extended',
1688
- '511': 'Network Authentication Required'
1686
+ '511': 'Network Authentication Required',
1687
+ '700': 'Exit',
1688
+ '701': 'Reload'
1689
1689
  };
1690
1690
 
1691
1691
  const LocaleModuleNameSeparator = '::';
@@ -2303,9 +2303,7 @@ class AppMeta extends BeanSimple {
2303
2303
  this.locale = this.bean._newBean(AppLocale);
2304
2304
 
2305
2305
  // hmr
2306
- if (process.env.META_MODE === 'dev') {
2307
- this.hmr = this.bean._newBean(AppHmr);
2308
- }
2306
+ this.hmr = this.bean._newBean(AppHmr);
2309
2307
 
2310
2308
  // text
2311
2309
  this.text = this.locale.createLocaleText();
@@ -2363,13 +2361,13 @@ class AppMeta extends BeanSimple {
2363
2361
  // appClose
2364
2362
  this.appClose = true;
2365
2363
  // hook: appClose
2366
- await this.app.util.monkeyModule(this.app.meta.appMonkey, this.app.meta.modulesMonkey, 'appClose');
2364
+ await this.app.util.monkeyModule(this.app.meta.appMonkey, this.app.meta.modulesMonkey, false, 'appClose');
2367
2365
  // ctx counter
2368
2366
  await this.app.meta.ctxCounter.awaitUntilZero();
2369
2367
  // appClosed
2370
2368
  this.appClosed = true;
2371
2369
  // hook: appClosed
2372
- await this.app.util.monkeyModule(this.app.meta.appMonkey, this.app.meta.modulesMonkey, 'appClosed');
2370
+ await this.app.util.monkeyModule(this.app.meta.appMonkey, this.app.meta.modulesMonkey, false, 'appClosed');
2373
2371
  // container dispose
2374
2372
  await this.app.bean.dispose();
2375
2373
  // logger dispose
@@ -2695,7 +2693,7 @@ async function loadConfig (app, modules) {
2695
2693
  if (module.resource.config) {
2696
2694
  const configModule = await module.resource.config(app, app.options.env);
2697
2695
  // configNew is not used by now
2698
- await app.util.monkeyModule(app.meta.appMonkey, app.meta.modulesMonkey, 'configLoaded', module, configModule);
2696
+ await app.util.monkeyModule(app.meta.appMonkey, app.meta.modulesMonkey, true, 'configLoaded', module, configModule);
2699
2697
  app.config.modules[module.info.relativeName] = deepExtend({}, configModule, app.config.modules[module.info.relativeName]);
2700
2698
  }
2701
2699
  }
@@ -2806,7 +2804,7 @@ class ModuleTools extends BeanSimple {
2806
2804
  const modulesArray = modulesMeta.modulesMeta.moduleNames.map(relativeName => modules[relativeName]);
2807
2805
  app.meta.modules = modules;
2808
2806
  app.meta.modulesArray = modulesArray;
2809
- app.meta.modulesMonkey = {};
2807
+ app.meta.modulesMonkey = [];
2810
2808
  return modules;
2811
2809
  }
2812
2810
  async load() {
@@ -2818,14 +2816,14 @@ class ModuleTools extends BeanSimple {
2818
2816
  }
2819
2817
  if (module.resource.Monkey) {
2820
2818
  module.monkeyInstance = app.bean._newBean(module.resource.Monkey, module);
2821
- app.meta.modulesMonkey[module.info.relativeName] = module;
2819
+ app.meta.modulesMonkey.push(module);
2822
2820
  }
2823
2821
  }
2824
2822
  }
2825
- async monkey(monkeyName) {
2823
+ async monkey(order, monkeyName) {
2826
2824
  const app = this.app;
2827
2825
  for (const module of app.meta.modulesArray) {
2828
- await app.util.monkeyModule(app.meta.appMonkey, app.meta.modulesMonkey, monkeyName, module);
2826
+ await app.util.monkeyModule(app.meta.appMonkey, app.meta.modulesMonkey, order, monkeyName, module);
2829
2827
  }
2830
2828
  }
2831
2829
  }
@@ -2840,14 +2838,14 @@ class ModuleLoader extends BeanSimple {
2840
2838
  // load modules
2841
2839
  await moduleTools.load();
2842
2840
  // monkey modules
2843
- await moduleTools.monkey('moduleLoading');
2841
+ await moduleTools.monkey(true, 'moduleLoading');
2844
2842
  await loadConfig(app, modules);
2845
2843
  await loadLocales(app, modules);
2846
2844
  loadErrors(app, modules);
2847
2845
  loadConstants(app, modules);
2848
2846
 
2849
2847
  // monkey modules
2850
- await moduleTools.monkey('moduleLoaded');
2848
+ await moduleTools.monkey(true, 'moduleLoaded');
2851
2849
  }
2852
2850
  }
2853
2851
 
@@ -2882,14 +2880,14 @@ class Start {
2882
2880
  async _start_appStart() {
2883
2881
  const app = this.app;
2884
2882
  // hook: appStart
2885
- await app.util.monkeyModule(app.meta.appMonkey, app.meta.modulesMonkey, 'appStart');
2883
+ await app.util.monkeyModule(app.meta.appMonkey, app.meta.modulesMonkey, true, 'appStart');
2886
2884
  }
2887
2885
  async _start_appReady() {
2888
2886
  const app = this.app;
2889
2887
  app.meta.appReady = true;
2890
2888
  app.meta.appReadyInstances = {};
2891
2889
  // hook: appReady
2892
- await app.util.monkeyModule(app.meta.appMonkey, app.meta.modulesMonkey, 'appReady');
2890
+ await app.util.monkeyModule(app.meta.appMonkey, app.meta.modulesMonkey, true, 'appReady');
2893
2891
  }
2894
2892
  async _start_appStarted() {
2895
2893
  const app = this.app;
@@ -2897,7 +2895,7 @@ class Start {
2897
2895
  // event: appStarted
2898
2896
  app.emit(EnumAppEvent.AppStarted);
2899
2897
  // hook: appStarted
2900
- await app.util.monkeyModule(app.meta.appMonkey, app.meta.modulesMonkey, 'appStarted');
2898
+ await app.util.monkeyModule(app.meta.appMonkey, app.meta.modulesMonkey, true, 'appStarted');
2901
2899
  }
2902
2900
  async _start_appConfig() {
2903
2901
  const app = this.app;
@@ -64,6 +64,8 @@ export declare const errorsInternal: {
64
64
  '509': string;
65
65
  '510': string;
66
66
  '511': string;
67
+ '700': string;
68
+ '701': string;
67
69
  };
68
70
  export type TypeErrorsInternal = typeof errorsInternal;
69
71
  export type TypeErrorsInternalKeys = keyof TypeErrorsInternal;
@@ -66,6 +66,8 @@ declare const _default: {
66
66
  '509': string;
67
67
  '510': string;
68
68
  '511': string;
69
+ '700': string;
70
+ '701': string;
69
71
  };
70
72
  'zh-cn': {
71
73
  ValidationFailedDev: string;
@@ -19,7 +19,7 @@ export declare class AppMeta extends BeanSimple {
19
19
  error: ErrorClass;
20
20
  logger: AppLogger;
21
21
  locale: AppLocale;
22
- hmr?: AppHmr;
22
+ hmr: AppHmr;
23
23
  text: IModuleLocaleText;
24
24
  scopeContainer: BeanScopeContainer;
25
25
  appMonkey?: IAppMonkey;
@@ -27,7 +27,7 @@ export declare class AppMeta extends BeanSimple {
27
27
  metadata: AppMetadata;
28
28
  modules: Record<string, IModule>;
29
29
  modulesArray: IModule[];
30
- modulesMonkey: Record<string, IModule>;
30
+ modulesMonkey: IModule[];
31
31
  constants: Record<string, any>;
32
32
  locales: TypeModuleResourceLocales;
33
33
  localeModules: TypeModuleResourceLocaleModules;
@@ -65,5 +65,7 @@ declare const _default: {
65
65
  '509': string;
66
66
  '510': string;
67
67
  '511': string;
68
+ '700': string;
69
+ '701': string;
68
70
  };
69
71
  export default _default;
@@ -3,5 +3,5 @@ import { BeanSimple } from '../bean/beanSimple.ts';
3
3
  export declare class ModuleTools extends BeanSimple {
4
4
  prepare(): Promise<Record<string, IModule>>;
5
5
  load(): Promise<void>;
6
- monkey(monkeyName: any): Promise<void>;
6
+ monkey(order: boolean, monkeyName: any): Promise<void>;
7
7
  }
@@ -37,8 +37,8 @@ export declare class AppUtil extends BeanSimple {
37
37
  get prodRootPath(): string;
38
38
  getAssetPathPhysical(moduleName: ModuleInfo.IModuleInfo | string, scene: keyof IModuleAssetSceneRecord, assetPath?: string): string;
39
39
  createError(data: any, returnObject?: boolean): any;
40
- monkeyModule(ebAppMonkey: any, ebModulesMonkey: any, monkeyName: TypeMonkeyName, moduleTarget?: IModule, ...monkeyData: any[]): Promise<void>;
41
- monkeyModuleSync(ebAppMonkey: any, ebModulesMonkey: any, monkeyName: TypeMonkeyName, moduleTarget?: IModule, ...monkeyData: any[]): void;
40
+ monkeyModule(ebAppMonkey: any, ebModulesMonkey: IModule[], order: boolean, monkeyName: TypeMonkeyName, moduleTarget?: IModule, ...monkeyData: any[]): Promise<void>;
41
+ monkeyModuleSync(ebAppMonkey: any, ebModulesMonkey: IModule[], order: boolean, monkeyName: TypeMonkeyName, moduleTarget?: IModule, ...monkeyData: any[]): void;
42
42
  detectErrorMessage(err: Error): string;
43
43
  detectStatus(err: Error): number;
44
44
  accepts(): "json" | "html";
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "vona-core",
3
3
  "type": "module",
4
- "version": "5.0.123",
4
+ "version": "5.0.125",
5
5
  "description": "vona",
6
6
  "publishConfig": {
7
7
  "access": "public"
@@ -32,7 +32,7 @@
32
32
  "@cabloy/module-info": "^1.3.34",
33
33
  "@cabloy/module-info-pro": "^1.0.42",
34
34
  "@cabloy/type-fest": "^5.3.1",
35
- "@cabloy/utils": "^2.0.12",
35
+ "@cabloy/utils": "^2.0.13",
36
36
  "@cabloy/word-utils": "^2.0.2",
37
37
  "@cabloy/zod-errors-custom": "^2.0.6",
38
38
  "@cabloy/zod-openapi": "^1.0.8",