vona-module-a-onion 5.0.38 → 5.1.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/LICENSE CHANGED
File without changes
@@ -45,3 +45,4 @@ declare module 'vona' {
45
45
  }
46
46
  }
47
47
  /** scope: end */
48
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/.metadata/index.ts"],"names":[],"mappings":"AACA,kBAAkB;AAClB,cAAc,uBAAuB,CAAC;AAEtC,OAAO,MAAM,CAAC;AACd,OAAO,QAAQ,MAAM,CAAC;CAGrB;AACD,OAAO,QAAQ,qBAAqB,CAAC;IAE7B,UAAiB,SAAS;KAGzB;CACR;AACD,gBAAgB;AAChB,kBAAkB;AAClB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,MAAM,CAAC;AACd,OAAO,QAAQ,MAAM,CAAC;IACpB,UAAiB,iBAAiB;QAChC,OAAO,EAAE,SAAS,CAAC;KACpB;CACF;AACD,gBAAgB;AAChB,qBAAqB;AACrB,cAAc,sBAAsB,CAAC;AAErC,OAAO,oBAAoB,CAAC;AAC5B,OAAO,QAAQ,oBAAoB,CAAC;CAGnC;AACD,OAAO,QAAQ,qBAAqB,CAAC;CAEpC;AACD,mBAAmB;AACnB,kBAAkB;AAClB,cAAc,YAAY,CAAC;AAC3B,gBAAgB;AAChB,mBAAmB;AACnB,OAAO,EAAE,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,MAAM,CAAC;AAGzD,qBACa,iBAAkB,SAAQ,aAAa;CAAG;AAEvD,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,aAAa,CAAC;CACrB;AAED,OAAO,MAAM,CAAC;AACd,OAAO,QAAQ,MAAM,CAAC;IACpB,UAAiB,gBAAgB;QAC/B,SAAS,EAAE,iBAAiB,CAAC;KAC9B;IAED,UAAiB,mBAAmB;QAClC,KAAK,EAAE,iBAAiB,CAAC;KAC1B;CAOF;AACD,iBAAiB"}
@@ -1,2 +1,3 @@
1
1
  export declare const __ThisModule__ = "a-onion";
2
2
  export { ScopeModuleAOnion as ScopeModule } from './index.ts';
3
+ //# sourceMappingURL=this.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"this.d.ts","sourceRoot":"","sources":["../../src/.metadata/this.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,YAAY,CAAC;AACxC,OAAO,EAAE,iBAAiB,IAAI,WAAW,EAAE,MAAM,YAAY,CAAC"}
@@ -1,8 +1,9 @@
1
- import type { IOnionOptionsEnable, IOnionOptionsMatch, IOnionOptionsMeta } from '../types/onion.ts';
2
1
  import { BeanBase } from 'vona';
2
+ import type { IOnionOptionsEnable, IOnionOptionsMatch, IOnionOptionsMeta } from '../types/onion.ts';
3
3
  export declare class BeanOnion extends BeanBase {
4
4
  private __instances;
5
5
  protected __get__(prop: string): any;
6
6
  checkOnionOptionsEnabled(options: IOnionOptionsEnable & IOnionOptionsMatch<any>, selector?: string | boolean, matchThis?: any, ...matchArgs: any[]): any;
7
7
  checkOnionOptionsMeta(meta?: IOnionOptionsMeta): boolean;
8
8
  }
9
+ //# sourceMappingURL=bean.onion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bean.onion.d.ts","sourceRoot":"","sources":["../../src/bean/bean.onion.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAgB,MAAM,MAAM,CAAC;AAG9C,OAAO,KAAK,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,iBAAiB,EAA8B,MAAM,mBAAmB,CAAC;AAIhI,qBAEa,SAAU,SAAQ,QAAQ;IACrC,OAAO,CAAC,WAAW,CAA2B;IAE9C,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM;IAOvB,wBAAwB,CAC7B,OAAO,EAAE,mBAAmB,GAAG,kBAAkB,CAAC,GAAG,CAAC,EACtD,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,EAC3B,SAAS,CAAC,EAAE,GAAG,EACf,GAAG,SAAS,EAAE,GAAG,EAAE;IAad,qBAAqB,CAAC,IAAI,CAAC,EAAE,iBAAiB;CAUtD"}
package/dist/index.d.ts CHANGED
@@ -1,2 +1,3 @@
1
1
  export * from './.metadata/index.ts';
2
2
  export * from './types/index.ts';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC"}
package/dist/index.js CHANGED
@@ -2,9 +2,9 @@ import { ProxyDisable, BeanInfo, BeanBase, compose, appMetadata, cast, deepExten
2
2
  import { __decorate } from 'tslib';
3
3
  import { isNil, checkMeta, matchSelector } from '@cabloy/utils';
4
4
  import { Service, Bean, Scope } from 'vona-module-a-bean';
5
- import { isRegExp } from 'node:util/types';
6
5
  import { swapDeps } from '@cabloy/deps';
7
6
  import { getOnionScenesMeta } from '@cabloy/module-info';
7
+ import { isRegExp } from 'node:util/types';
8
8
 
9
9
  const SymbolUseOnionLocal = Symbol('SymbolUseOnionLocal');
10
10
  const SymbolUseOnionOptions = Symbol('SymbolUseOnionOptions');
@@ -346,3 +346,4 @@ ScopeModuleAOnion = __decorate([Scope(), BeanInfo({
346
346
  /** scope: end */
347
347
 
348
348
  export { BeanOnion, Main, ScopeModuleAOnion, ServiceOnion, SymbolUseOnionLocal, SymbolUseOnionOptions, SymbolUseOnionOptionsRouteReal };
349
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../src/types/onion.ts","../src/service/onion_.ts","../src/bean/bean.onion.ts","../src/main.ts","../src/.metadata/index.ts"],"sourcesContent":[null,null,null,null,null],"names":["SymbolUseOnionLocal","Symbol","SymbolUseOnionOptions","SymbolUseOnionOptionsRouteReal","SymbolOnionsEnabled","SymbolOnionsEnabledWrapped","ServiceOnion","BeanBase","constructor","args","sceneName","sceneMeta","onionsNormal","onionsGlobal","_cacheOnionsGlobal","_cacheOnionsHandler","__init__","getOnionScenesMeta","app","meta","modules","load","_loadOnions","_swapOnions","clearCache","undefined","compose","route","fnStart","fnMid","fnEnd","executeCustom","onions","_composeOnionsHandler","getOnionsEnabled","selector","matchThis","matchArgs","filter","onionSlice","onionOptions","beanOptions","options","bean","onion","checkOnionOptionsEnabled","$loggerChild","verbose","selector2","message","JSON","stringify","getOnionsEnabledCached","_selector","getOnionsEnabledOfMeta","useCache","beanName","method","item","name","getOnionSliceEnabled","onionName","find","getOnionSlice","getOnionsEnabledWrapped","wrapFn","map","getOnionsEnabledWrappedCached","composedOnionsGlobal","_composeOnionsGlobal","push","_wrapOnion","beanFullName","controllerBeanFullName","handlerName","action","key","concat","onionsLocal","_collectOnionsHandler","controller","controllerOnionsLocal","appMetadata","getMetadata","actionOnionsLocal","prototype","onionsLocalAll","forEach","includes","Error","getOnionOptions","getOnionOptionsDynamic","optionsCustom","combineOnionOptions","ctx","optionsPrimitive","optionsMetaAndConfig","optionsInstanceConfig","instance","config","scene","optionsRoute","cast","argumentPipe","optionsArgumentPipe","optionsDynamic","onionsDynamic","deepExtend","swapDeps","dependencies","dependents","onionsAll","_loadOnionsAll","hasLocal","SymbolDecoratorGlobal","beanClass","module","modulesArray","_loadOnionsAll_fromMetadata","appResource","scenes","info","relativeName","replace","fn","data","next","_getRoutePathForMatch","beanInstance","_getBean","execute","_name","routePathRaw","isRegExp","inspect","onionSlices","onionNames","$logger","silly","inspectEventListener","eventName","inspectMeta","metaName","onionSlices2","toString","endsWith","__decorate","ProxyDisable","Service","__z_BeanInfo","BeanOnion","__instances","__get__","prop","_getBeanSelector","enable","checkOnionOptionsMeta","isNil","match","ignore","__onionMatchSelector","metaCurrent","Object","assign","instanceName","host","checkMeta","Bean","matchSelector","Main","BeanSimple","moduleLoading","moduleLoaded","configLoaded","_config","ScopeModuleAOnion","BeanScopeBase","Scope"],"mappings":"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"}
package/dist/main.d.ts CHANGED
@@ -5,3 +5,4 @@ export declare class Main extends BeanSimple implements IModuleMain {
5
5
  moduleLoaded(): Promise<void>;
6
6
  configLoaded(_config: any): Promise<void>;
7
7
  }
8
+ //# sourceMappingURL=main.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AAExC,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAElC,qBAAa,IAAK,SAAQ,UAAW,YAAW,WAAW;IACnD,aAAa;IAIb,YAAY;IACZ,YAAY,CAAC,OAAO,EAAE,GAAG;CAChC"}
@@ -3,8 +3,8 @@ import type { Next } from 'vona';
3
3
  import type { IEventRecord } from 'vona-module-a-event';
4
4
  import type { IMetaNameRecord } from 'vona-module-a-meta';
5
5
  import type { ContextRouteBase } from 'vona-module-a-web';
6
- import type { IOnionExecuteCustom, IOnionSlice, TypeOnionsNormal } from '../types/onion.ts';
7
6
  import { BeanBase } from 'vona';
7
+ import type { IOnionExecuteCustom, IOnionSlice, TypeOnionsNormal } from '../types/onion.ts';
8
8
  declare const SymbolOnionsEnabled: unique symbol;
9
9
  declare const SymbolOnionsEnabledWrapped: unique symbol;
10
10
  export declare class ServiceOnion<ONIONRECORD> extends BeanBase {
@@ -49,3 +49,4 @@ export declare class ServiceOnion<ONIONRECORD> extends BeanBase {
49
49
  inspectMeta(metaName: keyof IMetaNameRecord, selector?: string | boolean, matchThis?: any, ...matchArgs: any[]): void;
50
50
  }
51
51
  export {};
52
+ //# sourceMappingURL=onion_.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onion_.d.ts","sourceRoot":"","sources":["../../src/service/onion_.ts"],"names":[],"mappings":"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"}
@@ -1 +1,2 @@
1
1
  export * from './onion.ts';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC"}
@@ -16,7 +16,7 @@ export interface IOnionOptionsEnable<OmitMetaFields extends string = never> {
16
16
  export type TypeOnionOptionsEnableSimple = IOnionOptionsEnable<'instanceName' | 'host'>;
17
17
  export type TypeOnionOptionsMatchFunction = (this: any, ...args: any[]) => boolean;
18
18
  export type TypeOnionOptionsMatchRule<T> = T | RegExp | TypeOnionOptionsMatchFunction;
19
- export type TypeOnionOptionsMatchRules<T> = (TypeOnionOptionsMatchRule<T>)[] | TypeOnionOptionsMatchRule<T>;
19
+ export type TypeOnionOptionsMatchRules<T> = TypeOnionOptionsMatchRule<T>[] | TypeOnionOptionsMatchRule<T>;
20
20
  export interface IOnionOptionsMatch<T> {
21
21
  match?: T[] | T;
22
22
  ignore?: T[] | T;
@@ -26,8 +26,8 @@ export interface IOnionOptionsDeps<T> {
26
26
  dependents?: T[] | T;
27
27
  }
28
28
  export interface IOnionOptionsMeta extends VonaOnionOptionsMeta {
29
- instanceName?: keyof IInstanceRecord | (Array<keyof IInstanceRecord>);
30
- host?: keyof IHostRecord | (Array<keyof IHostRecord>);
29
+ instanceName?: keyof IInstanceRecord | Array<keyof IInstanceRecord>;
30
+ host?: keyof IHostRecord | Array<keyof IHostRecord>;
31
31
  }
32
32
  export interface IOnionOptionsBase<T extends string> extends IOnionOptionsEnable, IOnionOptionsMatch<TypeOnionOptionsMatchRule<T>> {
33
33
  }
@@ -51,3 +51,4 @@ declare module 'vona' {
51
51
  set onionsDynamic(value: PowerPartial<ConfigOnions> | undefined);
52
52
  }
53
53
  }
54
+ //# sourceMappingURL=onion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onion.d.ts","sourceRoot":"","sources":["../../src/types/onion.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,16 +1,17 @@
1
1
  {
2
2
  "name": "vona-module-a-onion",
3
- "type": "module",
4
- "version": "5.0.38",
5
- "title": "a-onion",
6
- "vonaModule": {
7
- "dependencies": {}
8
- },
3
+ "version": "5.1.2",
9
4
  "description": "",
10
- "author": "",
11
5
  "keywords": [
12
6
  "Vona Module"
13
7
  ],
8
+ "author": "",
9
+ "files": [
10
+ "assets",
11
+ "dist",
12
+ "src"
13
+ ],
14
+ "type": "module",
14
15
  "exports": {
15
16
  ".": {
16
17
  "types": [
@@ -21,16 +22,20 @@
21
22
  },
22
23
  "./package.json": "./package.json"
23
24
  },
24
- "files": [
25
- "assets",
26
- "dist"
27
- ],
25
+ "scripts": {
26
+ "clean": "rimraf dist tsconfig.build.tsbuildinfo",
27
+ "tsc:publish": "npm run clean && vona :bin:buildModule --sourcemap && tsc -p tsconfig.build.json",
28
+ "prepublishOnly": "npm run tsc:publish",
29
+ "prepack": "clean-package",
30
+ "postpack": "clean-package restore && npm run clean"
31
+ },
28
32
  "devDependencies": {
29
33
  "clean-package": "^2.2.0",
30
34
  "rimraf": "^6.0.1"
31
35
  },
32
- "scripts": {
33
- "clean": "rimraf dist tsconfig.build.tsbuildinfo",
34
- "tsc:publish": "npm run clean && vona :bin:buildModule && tsc -p tsconfig.build.json"
35
- }
36
- }
36
+ "title": "a-onion",
37
+ "vonaModule": {
38
+ "dependencies": {}
39
+ },
40
+ "gitHead": "a79189b882c17af5911573896a781bbb0046d37d"
41
+ }
@@ -0,0 +1,69 @@
1
+ // eslint-disable
2
+ /** bean: begin */
3
+ export * from '../bean/bean.onion.ts';
4
+
5
+ import 'vona';
6
+ declare module 'vona' {
7
+
8
+
9
+ }
10
+ declare module 'vona-module-a-onion' {
11
+
12
+ export interface BeanOnion {
13
+ /** @internal */
14
+ get scope(): ScopeModuleAOnion;
15
+ }
16
+ }
17
+ /** bean: end */
18
+ /** bean: begin */
19
+ import type { BeanOnion } from '../bean/bean.onion.ts';
20
+ import 'vona';
21
+ declare module 'vona' {
22
+ export interface IBeanRecordGlobal {
23
+ 'onion': BeanOnion;
24
+ }
25
+ }
26
+ /** bean: end */
27
+ /** service: begin */
28
+ export * from '../service/onion_.ts';
29
+
30
+ import 'vona-module-a-bean';
31
+ declare module 'vona-module-a-bean' {
32
+
33
+
34
+ }
35
+ declare module 'vona-module-a-onion' {
36
+
37
+ }
38
+ /** service: end */
39
+ /** main: begin */
40
+ export * from '../main.ts';
41
+ /** main: end */
42
+ /** scope: begin */
43
+ import { BeanScopeBase, type BeanScopeUtil } from 'vona';
44
+ import { Scope } from 'vona-module-a-bean';
45
+
46
+ @Scope()
47
+ export class ScopeModuleAOnion extends BeanScopeBase {}
48
+
49
+ export interface ScopeModuleAOnion {
50
+ util: BeanScopeUtil;
51
+ }
52
+
53
+ import 'vona';
54
+ declare module 'vona' {
55
+ export interface IBeanScopeRecord {
56
+ 'a-onion': ScopeModuleAOnion;
57
+ }
58
+
59
+ export interface IBeanScopeContainer {
60
+ onion: ScopeModuleAOnion;
61
+ }
62
+
63
+
64
+
65
+
66
+
67
+
68
+ }
69
+ /** scope: end */
@@ -0,0 +1,2 @@
1
+ export const __ThisModule__ = 'a-onion';
2
+ export { ScopeModuleAOnion as ScopeModule } from './index.ts';
@@ -0,0 +1,52 @@
1
+ import { checkMeta, isNil, matchSelector } from '@cabloy/utils';
2
+ import { BeanBase, ProxyDisable } from 'vona';
3
+ import { Bean } from 'vona-module-a-bean';
4
+
5
+ import type { IOnionOptionsEnable, IOnionOptionsMatch, IOnionOptionsMeta, TypeOnionOptionsMatchRules } from '../types/onion.ts';
6
+
7
+ import { ServiceOnion } from '../service/onion_.ts';
8
+
9
+ @ProxyDisable()
10
+ @Bean()
11
+ export class BeanOnion extends BeanBase {
12
+ private __instances: Record<string, any> = {};
13
+
14
+ protected __get__(prop: string) {
15
+ if (!this.__instances[prop]) {
16
+ this.__instances[prop] = this.bean._getBeanSelector(ServiceOnion, prop);
17
+ }
18
+ return this.__instances[prop];
19
+ }
20
+
21
+ public checkOnionOptionsEnabled(
22
+ options: IOnionOptionsEnable & IOnionOptionsMatch<any>,
23
+ selector?: string | boolean,
24
+ matchThis?: any,
25
+ ...matchArgs: any[]
26
+ ) {
27
+ if (options.enable === false) return false;
28
+ if (!this.checkOnionOptionsMeta(options.meta)) return false;
29
+ if (isNil(selector) || selector === false) return true;
30
+ if (isNil(options.match) && isNil(options.ignore)) return true;
31
+ matchThis = matchThis ?? this.app;
32
+ return (
33
+ (!isNil(options.match) && __onionMatchSelector(options.match, selector, matchThis, ...matchArgs)) ||
34
+ (!isNil(options.ignore) && !__onionMatchSelector(options.ignore, selector, matchThis, ...matchArgs))
35
+ );
36
+ }
37
+
38
+ public checkOnionOptionsMeta(meta?: IOnionOptionsMeta) {
39
+ let metaCurrent = this.app.config.meta;
40
+ if (this.app.ctx) {
41
+ metaCurrent = Object.assign({}, metaCurrent, {
42
+ instanceName: this.app.ctx.instanceName,
43
+ host: this.app.ctx.host,
44
+ });
45
+ }
46
+ return checkMeta(meta, metaCurrent);
47
+ }
48
+ }
49
+
50
+ function __onionMatchSelector(match: TypeOnionOptionsMatchRules<string>, selector: string | boolean, matchThis: any, ...matchArgs: any[]) {
51
+ return matchSelector(match, selector, matchThis, ...matchArgs);
52
+ }
package/src/index.ts ADDED
@@ -0,0 +1,2 @@
1
+ export * from './.metadata/index.ts';
2
+ export * from './types/index.ts';
package/src/main.ts ADDED
@@ -0,0 +1,12 @@
1
+ import type { IModuleMain } from 'vona';
2
+
3
+ import { BeanSimple } from 'vona';
4
+
5
+ export class Main extends BeanSimple implements IModuleMain {
6
+ async moduleLoading() {
7
+ if (!this.app.config.onions) this.app.config.onions = {} as any;
8
+ }
9
+
10
+ async moduleLoaded() {}
11
+ async configLoaded(_config: any) {}
12
+ }
@@ -0,0 +1,356 @@
1
+ import type { ISwapDepsItem } from '@cabloy/deps';
2
+ import type { IModule, OnionSceneMeta } from '@cabloy/module-info';
3
+ import type { Next, VonaContext } from 'vona';
4
+ import type { IEventRecord } from 'vona-module-a-event';
5
+ import type { IMetaNameRecord } from 'vona-module-a-meta';
6
+ import type { ContextRouteBase } from 'vona-module-a-web';
7
+
8
+ import { swapDeps } from '@cabloy/deps';
9
+ import { getOnionScenesMeta } from '@cabloy/module-info';
10
+ import { isRegExp } from 'node:util/types';
11
+ import { appMetadata, appResource, BeanBase, cast, compose, deepExtend, ProxyDisable, SymbolDecoratorGlobal } from 'vona';
12
+ import { Service } from 'vona-module-a-bean';
13
+
14
+ import type {
15
+ IOnionExecuteCustom,
16
+ IOnionOptionsDeps,
17
+ IOnionOptionsEnable,
18
+ IOnionOptionsMatch,
19
+ IOnionSlice,
20
+ TypeOnionOptionsMatchRule,
21
+ TypeOnionsNormal,
22
+ } from '../types/onion.ts';
23
+
24
+ import { SymbolUseOnionLocal } from '../types/onion.ts';
25
+
26
+ const SymbolOnionsEnabled = Symbol('SymbolOnionsEnabled');
27
+ const SymbolOnionsEnabledWrapped = Symbol('SymbolOnionsEnabledWrapped');
28
+
29
+ @ProxyDisable()
30
+ @Service()
31
+ export class ServiceOnion<ONIONRECORD> extends BeanBase {
32
+ sceneName: string;
33
+ sceneMeta: OnionSceneMeta;
34
+ onionsNormal: TypeOnionsNormal<ONIONRECORD>;
35
+ onionsGlobal: IOnionSlice<ONIONRECORD, keyof ONIONRECORD>[];
36
+
37
+ private [SymbolOnionsEnabled]: Record<string, IOnionSlice<ONIONRECORD, keyof ONIONRECORD>[]> = {};
38
+ private [SymbolOnionsEnabledWrapped]: Record<string, Function[]> = {};
39
+
40
+ private _cacheOnionsGlobal: Function[] | undefined;
41
+ private _cacheOnionsHandler: Record<string, Function[]> = {};
42
+
43
+ protected __init__(sceneName: string) {
44
+ this.sceneName = sceneName;
45
+ this.sceneMeta = getOnionScenesMeta(this.app.meta.modules)[this.sceneName];
46
+ this.load();
47
+ }
48
+
49
+ load() {
50
+ this._loadOnions();
51
+ this._swapOnions(this.onionsGlobal);
52
+ this[SymbolOnionsEnabled] = {};
53
+ this[SymbolOnionsEnabledWrapped] = {};
54
+ this.clearCache();
55
+ }
56
+
57
+ clearCache() {
58
+ this._cacheOnionsGlobal = undefined;
59
+ this._cacheOnionsHandler = {};
60
+ }
61
+
62
+ compose(
63
+ route: ContextRouteBase | undefined,
64
+ fnStart?: Function | Function[],
65
+ fnMid?: Function | Function[],
66
+ fnEnd?: Function | Function[],
67
+ executeCustom?: IOnionExecuteCustom,
68
+ ) {
69
+ // compose
70
+ const onions = this._composeOnionsHandler(route, fnStart, fnMid, fnEnd, executeCustom);
71
+ // invoke
72
+ return compose(onions);
73
+ }
74
+
75
+ getOnionsEnabled(selector?: string | boolean, matchThis?: any, ...matchArgs: any[]) {
76
+ const onions = this.onionsGlobal.filter(onionSlice => {
77
+ const onionOptions = onionSlice.beanOptions.options as IOnionOptionsEnable & IOnionOptionsMatch<TypeOnionOptionsMatchRule<string>>;
78
+ return this.bean.onion.checkOnionOptionsEnabled(onionOptions, selector, matchThis, ...matchArgs);
79
+ }) as unknown as IOnionSlice<ONIONRECORD, keyof ONIONRECORD>[];
80
+ this.$loggerChild('onion').verbose(() => {
81
+ const selector2 = typeof selector === 'string' ? selector : '';
82
+ const message = `getOnionsEnabled#${this.sceneName}${selector2 ? `#${selector2}` : ''} ${JSON.stringify(onions)}`;
83
+ return message;
84
+ });
85
+ return onions;
86
+ }
87
+
88
+ getOnionsEnabledCached(_selector?: string | boolean, matchThis?: any, ...matchArgs: any[]) {
89
+ const selector = typeof _selector === 'string' ? _selector : '';
90
+ if (!this[SymbolOnionsEnabled][selector]) {
91
+ this[SymbolOnionsEnabled][selector] = this.getOnionsEnabled(_selector, matchThis, ...matchArgs);
92
+ }
93
+ return this[SymbolOnionsEnabled][selector];
94
+ }
95
+
96
+ getOnionsEnabledOfMeta(useCache: boolean, beanName: keyof IMetaNameRecord, selector?: string | boolean, matchThis?: any, ...matchArgs: any[]) {
97
+ const method = useCache ? 'getOnionsEnabledCached' : 'getOnionsEnabled';
98
+ return this[method](selector, matchThis, ...matchArgs).filter(item => item.beanOptions.name === beanName);
99
+ }
100
+
101
+ getOnionSliceEnabled<T extends keyof ONIONRECORD>(
102
+ useCache: boolean,
103
+ onionName: T,
104
+ selector?: string | boolean,
105
+ matchThis?: any,
106
+ ...matchArgs: any[]
107
+ ) {
108
+ const method = useCache ? 'getOnionsEnabledCached' : 'getOnionsEnabled';
109
+ return this[method](selector, matchThis, ...matchArgs).find(item => item.name === onionName);
110
+ }
111
+
112
+ getOnionSlice<T extends keyof ONIONRECORD>(onionName: T): IOnionSlice<ONIONRECORD, T> {
113
+ return this.onionsNormal[onionName];
114
+ }
115
+
116
+ getOnionsEnabledWrapped(wrapFn: Function, selector?: string | boolean, matchThis?: any, ...matchArgs: any[]) {
117
+ const onions = this.getOnionsEnabled(selector, matchThis, ...matchArgs);
118
+ return onions.map(item => {
119
+ return wrapFn(item);
120
+ });
121
+ }
122
+
123
+ getOnionsEnabledWrappedCached(wrapFn: Function, _selector?: string | boolean, matchThis?: any, ...matchArgs: any[]) {
124
+ const selector = typeof _selector === 'string' ? _selector : '';
125
+ if (!this[SymbolOnionsEnabledWrapped][selector]) {
126
+ this[SymbolOnionsEnabledWrapped][selector] = this.getOnionsEnabledWrapped(wrapFn, _selector, matchThis, ...matchArgs);
127
+ }
128
+ return this[SymbolOnionsEnabledWrapped][selector];
129
+ }
130
+
131
+ public get composedOnionsGlobal() {
132
+ return this._composeOnionsGlobal();
133
+ }
134
+
135
+ private _composeOnionsGlobal(executeCustom?: IOnionExecuteCustom) {
136
+ if (!this._cacheOnionsGlobal) {
137
+ const onions: Function[] = [];
138
+ for (const item of this.onionsGlobal) {
139
+ onions.push(this._wrapOnion(item, executeCustom));
140
+ }
141
+ this._cacheOnionsGlobal = onions;
142
+ }
143
+ return this._cacheOnionsGlobal;
144
+ }
145
+
146
+ private _composeOnionsHandler(
147
+ route: ContextRouteBase | undefined,
148
+ fnStart?: Function | Function[],
149
+ fnMid?: Function | Function[],
150
+ fnEnd?: Function | Function[],
151
+ executeCustom?: IOnionExecuteCustom,
152
+ ) {
153
+ const beanFullName = route?.controllerBeanFullName;
154
+ const handlerName = route?.action;
155
+ const key = beanFullName ? `${beanFullName}:${handlerName}` : '';
156
+ if (!this._cacheOnionsHandler[key]) {
157
+ let onions: Function[] = [];
158
+ if (fnStart) onions = onions.concat(fnStart);
159
+ // onions: global
160
+ onions = onions.concat(this._composeOnionsGlobal(executeCustom));
161
+ if (fnMid) onions = onions.concat(fnMid);
162
+ // onions: handler
163
+ const onionsLocal = this._collectOnionsHandler(route);
164
+ for (const item of onionsLocal) {
165
+ onions.push(this._wrapOnion(item, executeCustom));
166
+ }
167
+ if (fnEnd) onions = onions.concat(fnEnd);
168
+ this._cacheOnionsHandler[key] = onions;
169
+ }
170
+ return this._cacheOnionsHandler[key];
171
+ }
172
+
173
+ public _collectOnionsHandler(route: ContextRouteBase | undefined) {
174
+ if (!route?.controller) return [];
175
+ // onionsLocal: controller
176
+ const controllerOnionsLocal = appMetadata.getMetadata<Record<string, string[]>>(SymbolUseOnionLocal, route.controller)?.[
177
+ this.sceneName
178
+ ] as string[];
179
+ // onionsLocal: action
180
+ const onionsLocal: IOnionSlice<ONIONRECORD, keyof ONIONRECORD>[] = [];
181
+ const actionOnionsLocal = appMetadata.getMetadata<Record<string, string[]>>(SymbolUseOnionLocal, route.controller.prototype, route.action)?.[
182
+ this.sceneName
183
+ ] as string[];
184
+ const onionsLocalAll: string[] = [];
185
+ if (actionOnionsLocal) {
186
+ actionOnionsLocal.forEach(item => {
187
+ if (!onionsLocalAll.includes(item)) onionsLocalAll.push(item);
188
+ });
189
+ }
190
+ if (controllerOnionsLocal) {
191
+ controllerOnionsLocal.forEach(item => {
192
+ if (!onionsLocalAll.includes(item)) onionsLocalAll.push(item);
193
+ });
194
+ }
195
+ for (const onionName of onionsLocalAll) {
196
+ const item = this.onionsNormal[onionName];
197
+ if (!item) throw new Error(`${this.sceneName} not found: ${onionName}`);
198
+ onionsLocal.push(item);
199
+ }
200
+ return onionsLocal;
201
+ }
202
+
203
+ getOnionOptions<T extends keyof ONIONRECORD>(onionName: T): ONIONRECORD[T] | undefined {
204
+ return this.getOnionSlice(onionName).beanOptions.options as ONIONRECORD[T] | undefined;
205
+ }
206
+
207
+ getOnionOptionsDynamic<T extends keyof ONIONRECORD>(onionName: T, optionsCustom?: Partial<ONIONRECORD[T]>): ONIONRECORD[T] {
208
+ const item = this.getOnionSlice(onionName);
209
+ return this.combineOnionOptions(item, optionsCustom);
210
+ }
211
+
212
+ combineOnionOptions<T extends keyof ONIONRECORD>(item: IOnionSlice<ONIONRECORD, T>, optionsCustom?: Partial<ONIONRECORD[T]>): ONIONRECORD[T] {
213
+ const ctx = this.ctx as VonaContext | undefined;
214
+ // optionsPrimitive
215
+ const optionsPrimitive = item.beanOptions.optionsPrimitive;
216
+ // options: meta/config
217
+ const optionsMetaAndConfig = item.beanOptions.options;
218
+ // options: instance config
219
+ const optionsInstanceConfig = ctx?.instance ? ctx?.config.onions[item.beanOptions.scene]?.[item.name] : undefined;
220
+ // options: route
221
+ // not use route options for argument pipe
222
+ let optionsRoute;
223
+ if (!cast(item).argumentPipe && this.sceneMeta.optionsRoute) {
224
+ const route = ctx?.route?.route;
225
+ optionsRoute = route?.meta?.[item.beanOptions.beanFullName];
226
+ }
227
+ // options: argument pipe
228
+ const optionsArgumentPipe = this.sceneMeta.optionsArgumentPipe ? cast(item).argumentPipe?.options : undefined;
229
+ // options: dynamic
230
+ let optionsDynamic;
231
+ if (this.sceneMeta.optionsDynamic) {
232
+ optionsDynamic = ctx?.onionsDynamic?.[item.beanOptions.scene]?.[item.name];
233
+ }
234
+ // final options
235
+ let options;
236
+ if (optionsPrimitive) {
237
+ options = optionsCustom ?? optionsDynamic ?? optionsArgumentPipe ?? optionsRoute ?? optionsInstanceConfig ?? optionsMetaAndConfig;
238
+ } else {
239
+ options = deepExtend({}, optionsMetaAndConfig, optionsInstanceConfig, optionsRoute, optionsArgumentPipe, optionsDynamic, optionsCustom);
240
+ }
241
+ // ok
242
+ return options;
243
+ }
244
+
245
+ private _swapOnions(onions: IOnionSlice<ONIONRECORD, keyof ONIONRECORD>[]) {
246
+ swapDeps(onions as ISwapDepsItem[], {
247
+ name: 'name',
248
+ dependencies: item => {
249
+ const onionOptions = cast<IOnionSlice<ONIONRECORD, keyof ONIONRECORD>>(item).beanOptions.options as IOnionOptionsDeps<string>;
250
+ return onionOptions.dependencies as any;
251
+ },
252
+ dependents: item => {
253
+ const onionOptions = cast<IOnionSlice<ONIONRECORD, keyof ONIONRECORD>>(item).beanOptions.options as IOnionOptionsDeps<string>;
254
+ return onionOptions.dependents as any;
255
+ },
256
+ });
257
+ }
258
+
259
+ private _loadOnions() {
260
+ const onionsAll = this._loadOnionsAll();
261
+ this.onionsNormal = {} as TypeOnionsNormal<ONIONRECORD>;
262
+ this.onionsGlobal = [];
263
+ // load
264
+ for (const item of onionsAll) {
265
+ // normal
266
+ this.onionsNormal[item.name] = item;
267
+ // global
268
+ if (!this.sceneMeta.hasLocal || appMetadata.getMetadata<boolean>(SymbolDecoratorGlobal, item.beanOptions.beanClass)) {
269
+ this.onionsGlobal.push(item);
270
+ }
271
+ }
272
+ }
273
+
274
+ private _loadOnionsAll() {
275
+ const onionsAll: IOnionSlice<ONIONRECORD, keyof ONIONRECORD>[] = [];
276
+ for (const module of this.app.meta.modulesArray) {
277
+ this._loadOnionsAll_fromMetadata(onionsAll, module);
278
+ }
279
+ return onionsAll;
280
+ }
281
+
282
+ private _loadOnionsAll_fromMetadata(onionsAll: IOnionSlice<ONIONRECORD, keyof ONIONRECORD>[], module: IModule) {
283
+ const onions = appResource.scenes[this.sceneName]?.[module.info.relativeName];
284
+ if (!onions) return;
285
+ for (const key in onions) {
286
+ const beanOptions = onions[key];
287
+ const name = key.replace(`.${this.sceneName}.`, ':') as keyof ONIONRECORD;
288
+ // push
289
+ onionsAll.push({
290
+ name,
291
+ beanOptions: beanOptions as any,
292
+ });
293
+ }
294
+ }
295
+
296
+ /** internal */
297
+ public _wrapOnion<T extends keyof ONIONRECORD>(item: IOnionSlice<ONIONRECORD, T>, executeCustom?: IOnionExecuteCustom) {
298
+ const sceneName = this.sceneName;
299
+ const fn = (data: any, next: Next) => {
300
+ // optionsPrimitive
301
+ const optionsPrimitive = item.beanOptions.optionsPrimitive;
302
+ // options
303
+ const options = this.combineOnionOptions(item);
304
+ // enable match ignore
305
+ if (!optionsPrimitive && !this.bean.onion.checkOnionOptionsEnabled(options as any, this._getRoutePathForMatch())) {
306
+ return next(data);
307
+ }
308
+ // execute
309
+ const beanFullName = item.beanOptions.beanFullName;
310
+ const beanInstance = this.app.bean._getBean(beanFullName as any);
311
+ if (!beanInstance) {
312
+ throw new Error(`${sceneName} bean not found: ${beanFullName}`);
313
+ }
314
+ if (executeCustom) {
315
+ return executeCustom(beanInstance, data, options, next);
316
+ }
317
+ return cast(beanInstance).execute(options, next);
318
+ };
319
+ fn._name = item.name;
320
+ return fn;
321
+ }
322
+
323
+ // todo: maybe use routePathRaw directly
324
+ private _getRoutePathForMatch() {
325
+ const routePathRaw: string | RegExp | undefined = this.ctx?.route?.routePathRaw;
326
+ if (!routePathRaw || isRegExp(routePathRaw)) return;
327
+ return routePathRaw;
328
+ }
329
+
330
+ public inspect(selector?: string | boolean, matchThis?: any, ...matchArgs: any[]) {
331
+ const onionSlices = this.getOnionsEnabled(selector, matchThis, ...matchArgs);
332
+ const onionNames = onionSlices.map(item => item.name);
333
+ this.$logger.silly(JSON.stringify(onionSlices, null, 2));
334
+ this.$logger.silly(JSON.stringify(onionNames, null, 2));
335
+ }
336
+
337
+ public inspectEventListener(eventName: keyof IEventRecord) {
338
+ const onionSlices = this.getOnionsEnabled(eventName);
339
+ const onionNames = onionSlices.map(item => item.name);
340
+ this.$logger.silly(JSON.stringify(onionSlices, null, 2));
341
+ this.$logger.silly(JSON.stringify(onionNames, null, 2));
342
+ }
343
+
344
+ public inspectMeta(metaName: keyof IMetaNameRecord, selector?: string | boolean, matchThis?: any, ...matchArgs: any[]) {
345
+ const onionSlices = this.getOnionsEnabled(selector, matchThis, ...matchArgs);
346
+ const onionSlices2: IOnionSlice[] = [];
347
+ for (const item of onionSlices) {
348
+ if (item.beanOptions.name === metaName) {
349
+ onionSlices2.push(item);
350
+ }
351
+ }
352
+ const onionNames = onionSlices.map(item => item.name).filter(item => item.toString().endsWith(`:${metaName}`));
353
+ this.$logger.silly(JSON.stringify(onionSlices2, null, 2));
354
+ this.$logger.silly(JSON.stringify(onionNames, null, 2));
355
+ }
356
+ }
@@ -0,0 +1 @@
1
+ export * from './onion.ts';
@@ -0,0 +1,67 @@
1
+ import type { VonaOnionOptionsMeta } from '@cabloy/module-info';
2
+ import type { IDecoratorBeanOptionsBase, IHostRecord, IInstanceRecord, PowerPartial } from 'vona';
3
+
4
+ export const SymbolUseOnionLocal = Symbol('SymbolUseOnionLocal');
5
+ export const SymbolUseOnionOptions = Symbol('SymbolUseOnionOptions');
6
+ export const SymbolUseOnionOptionsRouteReal = Symbol('SymbolUseOnionOptionsRouteReal');
7
+
8
+ export type TypeOnionsNormal<ONIONRECORD> = {
9
+ [KEY in keyof ONIONRECORD]: IOnionSlice<ONIONRECORD, KEY>;
10
+ };
11
+
12
+ export type IOnionExecuteCustom = (beanInstance: any, data: any, options: any, next: Function) => any;
13
+
14
+ export type TypeUseOnionOmitOptionsGlobal<T> = Omit<T, 'dependencies' | 'dependents' | 'ignore' | 'match'>;
15
+ export type TypeUseOnionOmitOptionsEnable<T> = Omit<T, 'enable' | 'meta'>;
16
+
17
+ export interface IOnionOptionsEnable<OmitMetaFields extends string = never> {
18
+ enable?: boolean;
19
+ meta?: Omit<IOnionOptionsMeta, OmitMetaFields>;
20
+ }
21
+
22
+ export type TypeOnionOptionsEnableSimple = IOnionOptionsEnable<'instanceName' | 'host'>;
23
+
24
+ export type TypeOnionOptionsMatchFunction = (this: any, ...args: any[]) => boolean;
25
+ export type TypeOnionOptionsMatchRule<T> = T | RegExp | TypeOnionOptionsMatchFunction;
26
+ export type TypeOnionOptionsMatchRules<T> = TypeOnionOptionsMatchRule<T>[] | TypeOnionOptionsMatchRule<T>;
27
+
28
+ export interface IOnionOptionsMatch<T> {
29
+ match?: T[] | T;
30
+ ignore?: T[] | T;
31
+ }
32
+
33
+ export interface IOnionOptionsDeps<T> {
34
+ dependencies?: T[] | T;
35
+ dependents?: T[] | T;
36
+ }
37
+
38
+ export interface IOnionOptionsMeta extends VonaOnionOptionsMeta {
39
+ instanceName?: keyof IInstanceRecord | Array<keyof IInstanceRecord>;
40
+ host?: keyof IHostRecord | Array<keyof IHostRecord>;
41
+ }
42
+
43
+ export interface IOnionOptionsBase<T extends string> extends IOnionOptionsEnable, IOnionOptionsMatch<TypeOnionOptionsMatchRule<T>> {}
44
+ export interface TypeOnionOptionsBaseSimple<T extends string>
45
+ extends TypeOnionOptionsEnableSimple, IOnionOptionsMatch<TypeOnionOptionsMatchRule<T>> {}
46
+
47
+ export interface IOnionSlice<ONIONRECORD = unknown, ONIONNAME extends keyof ONIONRECORD = any, T = unknown> {
48
+ name: ONIONNAME;
49
+ beanOptions: IDecoratorBeanOptionsBase<T, ONIONRECORD[ONIONNAME]>;
50
+ }
51
+
52
+ export interface ConfigOnions {}
53
+
54
+ declare module 'vona' {
55
+ export interface VonaConfig {
56
+ onions: ConfigOnions;
57
+ }
58
+
59
+ export interface ILoggerChildRecord {
60
+ onion: never;
61
+ }
62
+
63
+ export interface VonaContext {
64
+ get onionsDynamic(): PowerPartial<ConfigOnions> | undefined;
65
+ set onionsDynamic(value: PowerPartial<ConfigOnions> | undefined);
66
+ }
67
+ }