zova-module-a-bean 5.1.13 → 5.1.16

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
@@ -14,9 +14,6 @@ function Bean() {
14
14
  function Service() {
15
15
  return createBeanDecorator("service", "ctx");
16
16
  }
17
- function Store() {
18
- return createBeanDecorator("store", "app");
19
- }
20
17
  function Tool() {
21
18
  return createBeanDecorator("tool", "app");
22
19
  }
@@ -279,6 +276,6 @@ function UseAopMethod(aopMethodName, options) {
279
276
  var SymbolUseOnionLocal = Symbol("SymbolUseOnionLocal");
280
277
  var SymbolUseOnionOptions = Symbol("SymbolUseOnionOptions");
281
278
  //#endregion
282
- export { Aop, AopMethod, Bean, Controller, Data, MonkeySys, Render, Scope, ScopeModuleABean, Service, ServiceAop, ServiceOnion, Store, Style, SymbolDecoratorUseAopMethod, SymbolUseOnionLocal, SymbolUseOnionOptions, Sys, SysOnion, Tool, UseAopMethod };
279
+ export { Aop, AopMethod, Bean, Controller, Data, MonkeySys, Render, Scope, ScopeModuleABean, Service, ServiceAop, ServiceOnion, Style, SymbolDecoratorUseAopMethod, SymbolUseOnionLocal, SymbolUseOnionOptions, Sys, SysOnion, Tool, UseAopMethod };
283
280
 
284
281
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../src/lib/bean.ts","../src/service/onion_.ts","../src/bean/sys.onion.ts","../src/types/aopMethod.ts","../src/service/aop.ts","../src/monkeySys.ts","../src/lib/scope.ts","../src/.metadata/index.ts","../src/lib/useAopMethod.ts","../src/types/onion.ts"],"sourcesContent":["import { createBeanDecorator } from 'zova';\n\nimport type { IDecoratorAopOptions } from '../types/aop.js';\nimport type { IDecoratorAopMethodOptions } from '../types/aopMethod.js';\n\nexport function Sys(): ClassDecorator {\n return createBeanDecorator('sys', 'sys');\n}\n\nexport function Bean(): ClassDecorator {\n return createBeanDecorator('bean', 'ctx');\n}\n\nexport function Service(): ClassDecorator {\n return createBeanDecorator('service', 'ctx');\n}\n\nexport function Store(): ClassDecorator {\n return createBeanDecorator('store', 'app');\n}\n\nexport function Tool(): ClassDecorator {\n return createBeanDecorator('tool', 'app');\n}\n\nexport function Data(): ClassDecorator {\n return createBeanDecorator('data', 'new');\n}\n\nexport function Controller(): ClassDecorator {\n return createBeanDecorator('controller', 'ctx');\n}\n\nexport function Render(): ClassDecorator {\n return createBeanDecorator('render', 'ctx');\n}\n\nexport function Style(): ClassDecorator {\n return createBeanDecorator('style', 'ctx');\n}\n\nexport function Aop(options: IDecoratorAopOptions): ClassDecorator {\n return createBeanDecorator('aop', 'sys', true, options);\n}\n\nexport function AopMethod<T extends IDecoratorAopMethodOptions>(options?: T): ClassDecorator {\n return createBeanDecorator('aopMethod', 'sys', true, options);\n}\n","import type { ISwapDepsItem } from '@cabloy/deps';\nimport type { OnionSceneMeta } from '@cabloy/module-info';\nimport type { Next } from 'zova';\n\nimport { compose as _compose } from '@cabloy/compose';\nimport { swapDeps } from '@cabloy/deps';\nimport { getOnionScenesMeta } from '@cabloy/module-info';\nimport { appResource, BeanSimple, cast, deepExtend, ProxyDisable } from 'zova';\n\nimport type {\n IOnionExecuteCustom,\n IOnionItem,\n IOnionOptionsDeps,\n IOnionOptionsEnable,\n IOnionOptionsMatch,\n IOnionSlice,\n TypeOnionOptionsMatchRule,\n} from '../types/onion.js';\n\nimport { SysOnion } from '../bean/sys.onion.js';\nimport { Service } from '../lib/bean.js';\n\n// const SymbolOnionsEnabled = Symbol('SymbolOnionsEnabled');\n// const SymbolOnionsEnabledWrapped = Symbol('SymbolOnionsEnabledWrapped');\n\n@ProxyDisable()\n@Service()\nexport class ServiceOnion<OPTIONS, ONIONNAME extends string> extends BeanSimple {\n protected sysOnion: SysOnion;\n sceneName: string;\n sceneMeta: OnionSceneMeta;\n\n onionsAll: IOnionItem<OPTIONS, ONIONNAME>[];\n\n // private [SymbolOnionsEnabled]: Record<string, IOnionSlice<OPTIONS, ONIONNAME>[]> = {};\n // private [SymbolOnionsEnabledWrapped]: Record<string, Function[]> = {};\n\n protected __init__(sceneName: string, sysOnion: SysOnion) {\n if (process.env.DEV && this.bean.containerType !== 'sys') {\n throw new Error('should in sys container');\n }\n this.sysOnion = sysOnion;\n this.sceneName = sceneName;\n this.sceneMeta = getOnionScenesMeta(this.sys.meta.module.modulesMeta.modules)[this.sceneName];\n if (this.sceneMeta.optionsPackage) {\n this._initOnionsAll();\n this._swapOnions(this.onionsAll);\n }\n }\n\n private _initOnionsAll() {\n this.onionsAll = [];\n for (const moduleName in this.sys.meta.module.modulesMeta.modules) {\n const module = this.sys.meta.module.modulesMeta.modules[moduleName];\n const nodeItems = module.info.onionsMeta?.onionsConfig?.[this.sceneName];\n if (!nodeItems) continue;\n for (const itemName in nodeItems) {\n let itemOptions = nodeItems[itemName];\n // extend config\n const onionName = `${moduleName}:${itemName}`;\n const optionsConfig = this.sys.config.onions[this.sceneName]?.[onionName];\n if (optionsConfig) {\n itemOptions = deepExtend({}, itemOptions, optionsConfig);\n }\n this.onionsAll.push({\n name: onionName,\n options: itemOptions,\n } as any);\n }\n }\n }\n\n private _swapOnions(onions: IOnionItem<OPTIONS, ONIONNAME>[]) {\n swapDeps(onions as ISwapDepsItem[], {\n name: 'name',\n dependencies: item => {\n const onionOptions = cast<IOnionItem<OPTIONS, ONIONNAME>>(item)\n .options as IOnionOptionsDeps<string>;\n return onionOptions.dependencies as any;\n },\n dependents: item => {\n const onionOptions = cast<IOnionItem<OPTIONS, ONIONNAME>>(item)\n .options as IOnionOptionsDeps<string>;\n return onionOptions.dependents as any;\n },\n });\n }\n\n // getOnionsEnabled(selector?: string) {\n // if (!selector) selector = '';\n // if (!this[SymbolOnionsEnabled][selector]) {\n // this[SymbolOnionsEnabled][selector] = this.onionsGlobal.filter(onionSlice => {\n // const onionOptions = onionSlice.beanOptions.options as IOnionOptionsEnable & IOnionOptionsMatch<string>;\n // return this.sysOnion.checkOnionOptionsEnabled(onionOptions, selector);\n // }) as unknown as IOnionSlice<OPTIONS, ONIONNAME>[];\n // }\n // return this[SymbolOnionsEnabled][selector];\n // }\n\n // getOnionsEnabledOfMeta(beanName: string, selector?: string) {\n // return this.getOnionsEnabled(selector).filter(item => item.beanOptions.name === beanName);\n // }\n\n // getOnionsEnabledWrapped(wrapFn: Function, selector?: string) {\n // if (!selector) selector = '';\n // if (!this[SymbolOnionsEnabledWrapped][selector]) {\n // const onions = this.getOnionsEnabled(selector);\n // this[SymbolOnionsEnabledWrapped][selector] = onions.map(item => {\n // return wrapFn(item);\n // });\n // }\n // return this[SymbolOnionsEnabledWrapped][selector];\n // }\n\n // getOnionSlice(onionName: ONIONNAME): IOnionSlice<OPTIONS, ONIONNAME> {\n // return this.onionsNormal[onionName];\n // }\n\n // getOnionOptions<OPTIONS>(onionName: ONIONNAME): OPTIONS | undefined {\n // return this.getOnionSlice(onionName).beanOptions.options as OPTIONS | undefined;\n // }\n\n async loadOnionsFromPackage(\n selector?: string | boolean,\n matchThis?: any,\n ...matchArgs: any[]\n ): Promise<IOnionSlice<OPTIONS, ONIONNAME>[]> {\n // onionItems\n const onionItems = this.getOnionsEnabled(this.onionsAll, selector, matchThis, ...matchArgs);\n // loadOnions\n return await this.loadOnions(onionItems, selector, matchThis, ...matchArgs);\n }\n\n async loadOnions<T>(\n onionItems: IOnionItem<OPTIONS, ONIONNAME> | IOnionItem<OPTIONS, ONIONNAME>[],\n selector?: string | boolean,\n matchThis?: any,\n ...matchArgs: any[]\n ): Promise<IOnionSlice<OPTIONS, ONIONNAME, T>[]> {\n if (!Array.isArray(onionItems)) onionItems = [onionItems];\n if (onionItems.length === 0) return [];\n // load modules\n const moduleNames = onionItems.map(item => item.name.split(':')[0]);\n await this._loadModules(moduleNames);\n // onion slices\n const onionSlices: IOnionSlice<OPTIONS, ONIONNAME, T>[] = [];\n for (const item of onionItems) {\n const beanFullName = item.name.replace(':', `.${this.sceneName}.`);\n const beanOptions = appResource.getBean(beanFullName);\n if (!beanOptions) throw new Error(`behavior not found: ${beanFullName}`);\n // options\n let options;\n if (beanOptions.optionsPrimitive) {\n options = item.options !== undefined ? item.options : beanOptions.options;\n } else {\n options =\n item.options !== undefined\n ? deepExtend({}, beanOptions.options, item.options)\n : beanOptions.options;\n }\n // ok\n onionSlices.push({ name: item.name, options, beanFullName });\n }\n // optionsPackage\n if (this.sceneMeta.optionsPackage) return onionSlices;\n // swap\n this._swapOnions(onionSlices);\n // filter\n return this.getOnionsEnabled(onionSlices, selector, matchThis, ...matchArgs);\n }\n\n getOnionsEnabled<T>(\n onions: IOnionItem<OPTIONS, ONIONNAME>[],\n selector?: string | boolean,\n matchThis?: any,\n ...matchArgs: any[]\n ): IOnionSlice<OPTIONS, ONIONNAME, T>[] {\n if (!onions) return [];\n return onions.filter(onionItem => {\n const onionOptions = onionItem.options as IOnionOptionsEnable &\n IOnionOptionsMatch<TypeOnionOptionsMatchRule<string>>;\n return this.sysOnion.checkOnionOptionsEnabled(\n onionOptions,\n selector,\n matchThis,\n ...matchArgs,\n );\n }) as unknown as IOnionSlice<OPTIONS, ONIONNAME, T>[];\n }\n\n compose(\n onions: IOnionSlice<OPTIONS, ONIONNAME>[],\n executeCustom: IOnionExecuteCustom<OPTIONS, ONIONNAME>,\n ) {\n // fns\n const fns: Function[] = [];\n for (const item of onions) {\n fns.push(this._wrapOnion(item, executeCustom));\n }\n // compose\n return _compose(fns);\n }\n\n async _loadModules(moduleNames: string[]) {\n // load modules\n moduleNames = Array.from(new Set(moduleNames)).filter(item => !this.sys.meta.module.get(item));\n await this.sys.meta.module.loadModules(moduleNames);\n }\n\n /** internal */\n public _wrapOnion(\n item: IOnionSlice<OPTIONS, ONIONNAME>,\n executeCustom: IOnionExecuteCustom<OPTIONS, ONIONNAME>,\n ) {\n const fn = (data: any, next: Next) => {\n return executeCustom(item, data, next);\n };\n fn._name = item.name;\n return fn;\n }\n}\n","import { checkMeta, isNil, matchSelector } from '@cabloy/utils';\nimport { BeanBase, ProxyDisable } from 'zova';\n\nimport type {\n IOnionOptionsEnable,\n IOnionOptionsMatch,\n IOnionOptionsMeta,\n TypeOnionOptionsMatchRules,\n} from '../types/onion.js';\n\nimport { Sys } from '../lib/bean.js';\nimport { ServiceOnion } from '../service/onion_.js';\n\n@ProxyDisable()\n@Sys()\nexport class SysOnion extends BeanBase {\n private __instances: Record<string, any> = {};\n\n protected __get__(prop: string) {\n if (process.env.DEV && this.bean.containerType !== 'sys') {\n throw new Error('should in sys container');\n }\n if (!this.__instances[prop]) {\n this.__instances[prop] = this.bean._newBeanSimple(ServiceOnion, false, prop, this);\n }\n return this.__instances[prop];\n }\n\n public checkOnionOptionsEnabled(\n options: IOnionOptionsEnable & IOnionOptionsMatch<any>,\n selector?: string | boolean,\n matchThis?: any,\n ...matchArgs: any[]\n ) {\n if (options.enable === false) return false;\n if (!this.checkOnionOptionsMeta(options.meta)) return false;\n if (isNil(selector) || selector === false) return true;\n if (isNil(options.match) && isNil(options.ignore)) return true;\n return (\n (!isNil(options.match) &&\n __onionMatchSelector(options.match, selector, matchThis, ...matchArgs)) ||\n (!isNil(options.ignore) &&\n !__onionMatchSelector(options.ignore, selector, matchThis, ...matchArgs))\n );\n }\n\n public checkOnionOptionsMeta(meta?: IOnionOptionsMeta) {\n return checkMeta(meta, this.sys.config.meta);\n }\n}\n\nfunction __onionMatchSelector(\n match: TypeOnionOptionsMatchRules<string>,\n selector: string | boolean,\n matchThis: any,\n ...matchArgs: any[]\n) {\n return matchSelector(match, selector, matchThis, ...matchArgs);\n}\n","import type { Next, NextSync, OmitNever } from 'zova';\n\nimport type { ServiceOnion } from '../service/onion_.js';\nimport type { IOnionOptionsEnable } from './onion.js';\n\nexport const SymbolDecoratorUseAopMethod = Symbol('SymbolDecoratorUseAopMethod');\nexport interface IUseAopMethodPropMetadata<T extends keyof IAopMethodRecord = never> {\n beanInstance?: any;\n onionName?: T;\n options?: Partial<IAopMethodRecord[T]>;\n}\n\nexport interface IAopMethodRecord {}\n\nexport interface IAopMethodGet {\n get(options: IDecoratorAopMethodOptions, next: NextSync, receiver: any, prop: string): any;\n}\n\nexport interface IAopMethodSet {\n set(\n options: IDecoratorAopMethodOptions,\n value: any,\n next: NextSync,\n receiver: any,\n prop: string,\n ): boolean;\n}\n\nexport interface IAopMethodExecute {\n execute(\n options: IDecoratorAopMethodOptions,\n args: [],\n next: Next | NextSync,\n receiver: any,\n prop: string,\n ): Promise<any> | any;\n}\n\nexport interface IDecoratorAopMethodOptions extends IOnionOptionsEnable {}\n\ndeclare module 'zova-module-a-bean' {\n export interface SysOnion {\n aopMethod: ServiceOnion<IDecoratorAopMethodOptions, keyof IAopMethodRecord>;\n }\n}\n\ndeclare module 'zova' {\n export interface ConfigOnions {\n aopMethod: OmitNever<IAopMethodRecord>;\n }\n\n export interface IBeanSceneRecord {\n aopMethod: never;\n }\n}\n","import type { BeanAopMethodBase, Constructable, IBeanRecord } from 'zova';\n\nimport { appMetadata, appResource, BeanBase, ProxyDisable, Use } from 'zova';\n\nimport type { IAopRecord, IDecoratorAopOptions } from '../types/aop.js';\nimport type { IOnionItem, IOnionSlice } from '../types/onion.js';\n\nimport { SysOnion } from '../bean/sys.onion.js';\nimport { Service } from '../lib/bean.js';\nimport {\n IAopMethodRecord,\n IDecoratorAopMethodOptions,\n IUseAopMethodPropMetadata,\n SymbolDecoratorUseAopMethod,\n} from '../types/aopMethod.js';\n\ntype AopMethodsMatchedAll = Record<string, IUseAopMethodPropMetadata[]>;\n\n@ProxyDisable()\n@Service()\nexport class ServiceAop extends BeanBase {\n @Use()\n $$sysOnion: SysOnion;\n\n async findAopsMatched<T>(\n A: Constructable<T>,\n ): Promise<IOnionSlice<IDecoratorAopOptions, keyof IAopRecord>[] | undefined>;\n async findAopsMatched<K extends keyof IBeanRecord>(\n beanFullName: K,\n ): Promise<IOnionSlice<IDecoratorAopOptions, keyof IAopRecord>[] | undefined>;\n async findAopsMatched(\n beanFullName: string,\n ): Promise<IOnionSlice<IDecoratorAopOptions, keyof IAopRecord>[] | undefined>;\n async findAopsMatched<T>(\n beanFullName: Constructable<T> | string,\n ): Promise<IOnionSlice<IDecoratorAopOptions, keyof IAopRecord>[] | undefined> {\n if (process.env.DEV && this.bean.containerType !== 'sys') {\n throw new Error('should in sys container');\n }\n // beanOptions\n const beanOptions = appResource.getBean(beanFullName as any);\n if (!beanOptions) return;\n // loadOnions\n return await this.$$sysOnion.aop.loadOnionsFromPackage(beanOptions.beanFullName);\n }\n\n async findAopMethodsMatched<T>(A: Constructable<T>): Promise<AopMethodsMatchedAll | undefined>;\n async findAopMethodsMatched<K extends keyof IBeanRecord>(\n beanFullName: K,\n ): Promise<AopMethodsMatchedAll | undefined>;\n async findAopMethodsMatched(beanFullName: string): Promise<AopMethodsMatchedAll | undefined>;\n async findAopMethodsMatched<T>(\n beanFullName: Constructable<T> | string,\n ): Promise<AopMethodsMatchedAll | undefined> {\n if (process.env.DEV && this.bean.containerType !== 'sys') {\n throw new Error('should in sys container');\n }\n // beanOptions\n const beanOptions = appResource.getBean(beanFullName as any);\n if (!beanOptions) return;\n const aopMethodsMatchedAll: AopMethodsMatchedAll = {};\n const uses = appMetadata.getMetadata<Record<string, IUseAopMethodPropMetadata[]>>(\n SymbolDecoratorUseAopMethod,\n beanOptions.beanClass.prototype,\n );\n for (const prop in uses) {\n const onionItems: IOnionItem<IDecoratorAopMethodOptions, keyof IAopMethodRecord>[] = [];\n const aopMethods: IUseAopMethodPropMetadata[] = uses[prop];\n for (const aopMethod of aopMethods) {\n onionItems.push({\n name: aopMethod.onionName as never,\n options: aopMethod.options,\n });\n }\n // load onions\n const onionSlices = await this.$$sysOnion.aopMethod.loadOnions<BeanAopMethodBase>(onionItems);\n // aopMethodsMatched\n const aopMethodsMatched: IUseAopMethodPropMetadata[] = [];\n for (const onionSlice of onionSlices) {\n const beanInstance = await this.sys.bean._getBean(onionSlice.beanFullName as any, true);\n aopMethodsMatched.push({\n onionName: onionSlice.name as any,\n beanInstance,\n options: onionSlice.options as any,\n });\n }\n aopMethodsMatchedAll[prop] = aopMethodsMatched;\n }\n return Object.keys(aopMethodsMatchedAll).length === 0 ? undefined : aopMethodsMatchedAll;\n }\n}\n","import type { IMonkeySysInitialize } from 'zova';\n\nimport { BeanSimple } from 'zova';\n\nexport class MonkeySys extends BeanSimple implements IMonkeySysInitialize {\n async sysInitialize() {\n let beansPreload: string[] = [];\n for (const moduleName in this.sys.meta.module.modulesMeta.modules) {\n const module = this.sys.meta.module.modulesMeta.modules[moduleName];\n if (!module.info.onionsMeta?.beansPreload) continue;\n beansPreload = beansPreload.concat(module.info.onionsMeta?.beansPreload);\n }\n const promises: Promise<any>[] = beansPreload.map(item => {\n return this.sys.bean._getBean(item as any, false);\n });\n await Promise.all(promises);\n }\n}\n","import { createBeanDecorator } from 'zova';\n\nexport function Scope(): ClassDecorator {\n return createBeanDecorator('scope', 'app', false);\n}\n","// eslint-disable\n/** sys: begin */\nexport * from '../bean/sys.onion.js';\n\nimport 'zova';\ndeclare module 'zova' {\n \n \n}\ndeclare module 'zova-module-a-bean' {\n \n export interface SysOnion {\n /** @internal */\n get scope(): ScopeModuleABean;\n }\n\n export interface SysOnion {\n get $beanFullName(): 'a-bean.sys.onion';\n get $onionName(): 'a-bean:onion';\n \n } \n}\n/** sys: end */\n/** sys: begin */\nimport { SysOnion } from '../bean/sys.onion.js';\nimport 'zova';\ndeclare module 'zova' {\n export interface IBeanRecordGeneral {\n 'a-bean.sys.onion': SysOnion;\n }\n}\n/** sys: end */\n/** service: begin */\nexport * from '../service/aop.js';\nexport * from '../service/onion_.js';\n\nimport 'zova-module-a-bean';\ndeclare module 'zova-module-a-bean' {\n \n export interface IServiceRecord {\n 'a-bean:aop': never;\n }\n\n \n}\ndeclare module 'zova-module-a-bean' {\n \n export interface ServiceAop {\n /** @internal */\n get scope(): ScopeModuleABean;\n }\n\n export interface ServiceAop {\n get $beanFullName(): 'a-bean.service.aop';\n get $onionName(): 'a-bean:aop';\n \n } \n}\n/** service: end */\n/** service: begin */\nimport { ServiceAop } from '../service/aop.js';\nimport 'zova';\ndeclare module 'zova' {\n export interface IBeanRecordGeneral {\n 'a-bean.service.aop': ServiceAop;\n }\n}\n/** service: end */\n/** monkeySys: begin */\nexport * from '../monkeySys.js';\n/** monkeySys: end */\n/** scope: begin */\nimport { BeanScopeBase, type BeanScopeUtil } from 'zova';\nimport { Scope } from '../lib/scope.js';\n\n@Scope()\nexport class ScopeModuleABean extends BeanScopeBase {}\n\nexport interface ScopeModuleABean {\n util: BeanScopeUtil;\n}\n\nimport 'zova';\ndeclare module 'zova' {\n export interface IBeanScopeRecord {\n 'a-bean': ScopeModuleABean;\n }\n \n \n\n \n\n \n}\n \n/** scope: end */\n","import type { MetadataKey } from 'zova';\n\nimport { appMetadata, registerMappedClassMetadataKey } from 'zova';\n\nimport type { IAopMethodRecord, IUseAopMethodPropMetadata } from '../types/aopMethod.js';\n\nimport { SymbolDecoratorUseAopMethod } from '../types/aopMethod.js';\n\nexport function UseAopMethod<T extends keyof IAopMethodRecord>(\n aopMethodName: T,\n options?: Partial<IAopMethodRecord[T]>,\n): PropertyDescriptor & MethodDecorator {\n return function (target: object, prop: MetadataKey, descriptor?: PropertyDescriptor) {\n registerMappedClassMetadataKey(target, SymbolDecoratorUseAopMethod);\n const uses = appMetadata.getOwnMetadataMap<MetadataKey, IUseAopMethodPropMetadata<T>[]>(\n true,\n SymbolDecoratorUseAopMethod,\n target,\n );\n if (!uses[prop]) uses[prop] = [];\n uses[prop].push({ onionName: aopMethodName, options });\n return descriptor;\n } as any;\n}\n","import type { ZovaOnionOptionsMeta } from '@cabloy/module-info';\n\nexport const SymbolUseOnionLocal = Symbol('SymbolUseOnionLocal');\nexport const SymbolUseOnionOptions = Symbol('SymbolUseOnionOptions');\n\nexport type TypeComposer = (context: any, next?: any) => any;\n\nexport type IOnionExecuteCustom<OPTIONS, ONIONNAME> = (\n onionSlice: IOnionSlice<OPTIONS, ONIONNAME>,\n data: any,\n next: Function,\n) => any;\n\nexport type TypeUseOnionGlobalBaseOptions<T> = Omit<\n T,\n 'global' | 'dependencies' | 'dependents' | 'ignore' | 'match'\n>;\n\nexport interface IOnionOptionsEnable {\n enable?: boolean;\n meta?: IOnionOptionsMeta;\n}\n\nexport type TypeOnionOptionsMatchFunction = (this: any, ...args: any[]) => boolean;\nexport type TypeOnionOptionsMatchRule<T> = T | RegExp | TypeOnionOptionsMatchFunction;\nexport type TypeOnionOptionsMatchRules<T> =\n | TypeOnionOptionsMatchRule<T>[]\n | TypeOnionOptionsMatchRule<T>;\n\nexport interface IOnionOptionsMatch<T> {\n match?: T[] | T;\n ignore?: T[] | T;\n}\n\nexport interface IOnionOptionsDeps<T> {\n dependencies?: T[] | T;\n dependents?: T[] | T;\n}\n\nexport interface IOnionOptionsMeta extends ZovaOnionOptionsMeta {}\n\nexport interface IOnionOptionsBase<T extends string>\n extends IOnionOptionsEnable, IOnionOptionsMatch<TypeOnionOptionsMatchRule<T>> {}\n\nexport interface IOnionSlice<OPTIONS = unknown, ONIONNAME = string, T = unknown> {\n name: ONIONNAME;\n options: OPTIONS;\n beanFullName: string;\n beanInstance?: T;\n}\n\nexport interface IOnionItem<OPTIONS = unknown, ONIONNAME = string> {\n name: ONIONNAME;\n options?: Partial<OPTIONS>;\n}\n\nexport interface ConfigOnions {}\n\ndeclare module 'zova' {\n export interface ZovaConfig {\n onions: ConfigOnions;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../src/lib/bean.ts","../src/service/onion_.ts","../src/bean/sys.onion.ts","../src/types/aopMethod.ts","../src/service/aop.ts","../src/monkeySys.ts","../src/lib/scope.ts","../src/.metadata/index.ts","../src/lib/useAopMethod.ts","../src/types/onion.ts"],"sourcesContent":["import { createBeanDecorator } from 'zova';\n\nimport type { IDecoratorAopOptions } from '../types/aop.js';\nimport type { IDecoratorAopMethodOptions } from '../types/aopMethod.js';\n\nexport function Sys(): ClassDecorator {\n return createBeanDecorator('sys', 'sys');\n}\n\nexport function Bean(): ClassDecorator {\n return createBeanDecorator('bean', 'ctx');\n}\n\nexport function Service(): ClassDecorator {\n return createBeanDecorator('service', 'ctx');\n}\n\nexport function Tool(): ClassDecorator {\n return createBeanDecorator('tool', 'app');\n}\n\nexport function Data(): ClassDecorator {\n return createBeanDecorator('data', 'new');\n}\n\nexport function Controller(): ClassDecorator {\n return createBeanDecorator('controller', 'ctx');\n}\n\nexport function Render(): ClassDecorator {\n return createBeanDecorator('render', 'ctx');\n}\n\nexport function Style(): ClassDecorator {\n return createBeanDecorator('style', 'ctx');\n}\n\nexport function Aop(options: IDecoratorAopOptions): ClassDecorator {\n return createBeanDecorator('aop', 'sys', true, options);\n}\n\nexport function AopMethod<T extends IDecoratorAopMethodOptions>(options?: T): ClassDecorator {\n return createBeanDecorator('aopMethod', 'sys', true, options);\n}\n","import type { ISwapDepsItem } from '@cabloy/deps';\nimport type { OnionSceneMeta } from '@cabloy/module-info';\nimport type { Next } from 'zova';\n\nimport { compose as _compose } from '@cabloy/compose';\nimport { swapDeps } from '@cabloy/deps';\nimport { getOnionScenesMeta } from '@cabloy/module-info';\nimport { appResource, BeanSimple, cast, deepExtend, ProxyDisable } from 'zova';\n\nimport type {\n IOnionExecuteCustom,\n IOnionItem,\n IOnionOptionsDeps,\n IOnionOptionsEnable,\n IOnionOptionsMatch,\n IOnionSlice,\n TypeOnionOptionsMatchRule,\n} from '../types/onion.js';\n\nimport { SysOnion } from '../bean/sys.onion.js';\nimport { Service } from '../lib/bean.js';\n\n// const SymbolOnionsEnabled = Symbol('SymbolOnionsEnabled');\n// const SymbolOnionsEnabledWrapped = Symbol('SymbolOnionsEnabledWrapped');\n\n@ProxyDisable()\n@Service()\nexport class ServiceOnion<OPTIONS, ONIONNAME extends string> extends BeanSimple {\n protected sysOnion: SysOnion;\n sceneName: string;\n sceneMeta: OnionSceneMeta;\n\n onionsAll: IOnionItem<OPTIONS, ONIONNAME>[];\n\n // private [SymbolOnionsEnabled]: Record<string, IOnionSlice<OPTIONS, ONIONNAME>[]> = {};\n // private [SymbolOnionsEnabledWrapped]: Record<string, Function[]> = {};\n\n protected __init__(sceneName: string, sysOnion: SysOnion) {\n if (process.env.DEV && this.bean.containerType !== 'sys') {\n throw new Error('should in sys container');\n }\n this.sysOnion = sysOnion;\n this.sceneName = sceneName;\n this.sceneMeta = getOnionScenesMeta(this.sys.meta.module.modulesMeta.modules)[this.sceneName];\n if (this.sceneMeta.optionsPackage) {\n this._initOnionsAll();\n this._swapOnions(this.onionsAll);\n }\n }\n\n private _initOnionsAll() {\n this.onionsAll = [];\n for (const moduleName in this.sys.meta.module.modulesMeta.modules) {\n const module = this.sys.meta.module.modulesMeta.modules[moduleName];\n const nodeItems = module.info.onionsMeta?.onionsConfig?.[this.sceneName];\n if (!nodeItems) continue;\n for (const itemName in nodeItems) {\n let itemOptions = nodeItems[itemName];\n // extend config\n const onionName = `${moduleName}:${itemName}`;\n const optionsConfig = this.sys.config.onions[this.sceneName]?.[onionName];\n if (optionsConfig) {\n itemOptions = deepExtend({}, itemOptions, optionsConfig);\n }\n this.onionsAll.push({\n name: onionName,\n options: itemOptions,\n } as any);\n }\n }\n }\n\n private _swapOnions(onions: IOnionItem<OPTIONS, ONIONNAME>[]) {\n swapDeps(onions as ISwapDepsItem[], {\n name: 'name',\n dependencies: item => {\n const onionOptions = cast<IOnionItem<OPTIONS, ONIONNAME>>(item)\n .options as IOnionOptionsDeps<string>;\n return onionOptions.dependencies as any;\n },\n dependents: item => {\n const onionOptions = cast<IOnionItem<OPTIONS, ONIONNAME>>(item)\n .options as IOnionOptionsDeps<string>;\n return onionOptions.dependents as any;\n },\n });\n }\n\n // getOnionsEnabled(selector?: string) {\n // if (!selector) selector = '';\n // if (!this[SymbolOnionsEnabled][selector]) {\n // this[SymbolOnionsEnabled][selector] = this.onionsGlobal.filter(onionSlice => {\n // const onionOptions = onionSlice.beanOptions.options as IOnionOptionsEnable & IOnionOptionsMatch<string>;\n // return this.sysOnion.checkOnionOptionsEnabled(onionOptions, selector);\n // }) as unknown as IOnionSlice<OPTIONS, ONIONNAME>[];\n // }\n // return this[SymbolOnionsEnabled][selector];\n // }\n\n // getOnionsEnabledOfMeta(beanName: string, selector?: string) {\n // return this.getOnionsEnabled(selector).filter(item => item.beanOptions.name === beanName);\n // }\n\n // getOnionsEnabledWrapped(wrapFn: Function, selector?: string) {\n // if (!selector) selector = '';\n // if (!this[SymbolOnionsEnabledWrapped][selector]) {\n // const onions = this.getOnionsEnabled(selector);\n // this[SymbolOnionsEnabledWrapped][selector] = onions.map(item => {\n // return wrapFn(item);\n // });\n // }\n // return this[SymbolOnionsEnabledWrapped][selector];\n // }\n\n // getOnionSlice(onionName: ONIONNAME): IOnionSlice<OPTIONS, ONIONNAME> {\n // return this.onionsNormal[onionName];\n // }\n\n // getOnionOptions<OPTIONS>(onionName: ONIONNAME): OPTIONS | undefined {\n // return this.getOnionSlice(onionName).beanOptions.options as OPTIONS | undefined;\n // }\n\n async loadOnionsFromPackage(\n selector?: string | boolean,\n matchThis?: any,\n ...matchArgs: any[]\n ): Promise<IOnionSlice<OPTIONS, ONIONNAME>[]> {\n // onionItems\n const onionItems = this.getOnionsEnabled(this.onionsAll, selector, matchThis, ...matchArgs);\n // loadOnions\n return await this.loadOnions(onionItems, selector, matchThis, ...matchArgs);\n }\n\n async loadOnions<T>(\n onionItems: IOnionItem<OPTIONS, ONIONNAME> | IOnionItem<OPTIONS, ONIONNAME>[],\n selector?: string | boolean,\n matchThis?: any,\n ...matchArgs: any[]\n ): Promise<IOnionSlice<OPTIONS, ONIONNAME, T>[]> {\n if (!Array.isArray(onionItems)) onionItems = [onionItems];\n if (onionItems.length === 0) return [];\n // load modules\n const moduleNames = onionItems.map(item => item.name.split(':')[0]);\n await this._loadModules(moduleNames);\n // onion slices\n const onionSlices: IOnionSlice<OPTIONS, ONIONNAME, T>[] = [];\n for (const item of onionItems) {\n const beanFullName = item.name.replace(':', `.${this.sceneName}.`);\n const beanOptions = appResource.getBean(beanFullName);\n if (!beanOptions) throw new Error(`behavior not found: ${beanFullName}`);\n // options\n let options;\n if (beanOptions.optionsPrimitive) {\n options = item.options !== undefined ? item.options : beanOptions.options;\n } else {\n options =\n item.options !== undefined\n ? deepExtend({}, beanOptions.options, item.options)\n : beanOptions.options;\n }\n // ok\n onionSlices.push({ name: item.name, options, beanFullName });\n }\n // optionsPackage\n if (this.sceneMeta.optionsPackage) return onionSlices;\n // swap\n this._swapOnions(onionSlices);\n // filter\n return this.getOnionsEnabled(onionSlices, selector, matchThis, ...matchArgs);\n }\n\n getOnionsEnabled<T>(\n onions: IOnionItem<OPTIONS, ONIONNAME>[],\n selector?: string | boolean,\n matchThis?: any,\n ...matchArgs: any[]\n ): IOnionSlice<OPTIONS, ONIONNAME, T>[] {\n if (!onions) return [];\n return onions.filter(onionItem => {\n const onionOptions = onionItem.options as IOnionOptionsEnable &\n IOnionOptionsMatch<TypeOnionOptionsMatchRule<string>>;\n return this.sysOnion.checkOnionOptionsEnabled(\n onionOptions,\n selector,\n matchThis,\n ...matchArgs,\n );\n }) as unknown as IOnionSlice<OPTIONS, ONIONNAME, T>[];\n }\n\n compose(\n onions: IOnionSlice<OPTIONS, ONIONNAME>[],\n executeCustom: IOnionExecuteCustom<OPTIONS, ONIONNAME>,\n ) {\n // fns\n const fns: Function[] = [];\n for (const item of onions) {\n fns.push(this._wrapOnion(item, executeCustom));\n }\n // compose\n return _compose(fns);\n }\n\n async _loadModules(moduleNames: string[]) {\n // load modules\n moduleNames = Array.from(new Set(moduleNames)).filter(item => !this.sys.meta.module.get(item));\n await this.sys.meta.module.loadModules(moduleNames);\n }\n\n /** internal */\n public _wrapOnion(\n item: IOnionSlice<OPTIONS, ONIONNAME>,\n executeCustom: IOnionExecuteCustom<OPTIONS, ONIONNAME>,\n ) {\n const fn = (data: any, next: Next) => {\n return executeCustom(item, data, next);\n };\n fn._name = item.name;\n return fn;\n }\n}\n","import { checkMeta, isNil, matchSelector } from '@cabloy/utils';\nimport { BeanBase, ProxyDisable } from 'zova';\n\nimport type {\n IOnionOptionsEnable,\n IOnionOptionsMatch,\n IOnionOptionsMeta,\n TypeOnionOptionsMatchRules,\n} from '../types/onion.js';\n\nimport { Sys } from '../lib/bean.js';\nimport { ServiceOnion } from '../service/onion_.js';\n\n@ProxyDisable()\n@Sys()\nexport class SysOnion extends BeanBase {\n private __instances: Record<string, any> = {};\n\n protected __get__(prop: string) {\n if (process.env.DEV && this.bean.containerType !== 'sys') {\n throw new Error('should in sys container');\n }\n if (!this.__instances[prop]) {\n this.__instances[prop] = this.bean._newBeanSimple(ServiceOnion, false, prop, this);\n }\n return this.__instances[prop];\n }\n\n public checkOnionOptionsEnabled(\n options: IOnionOptionsEnable & IOnionOptionsMatch<any>,\n selector?: string | boolean,\n matchThis?: any,\n ...matchArgs: any[]\n ) {\n if (options.enable === false) return false;\n if (!this.checkOnionOptionsMeta(options.meta)) return false;\n if (isNil(selector) || selector === false) return true;\n if (isNil(options.match) && isNil(options.ignore)) return true;\n return (\n (!isNil(options.match) &&\n __onionMatchSelector(options.match, selector, matchThis, ...matchArgs)) ||\n (!isNil(options.ignore) &&\n !__onionMatchSelector(options.ignore, selector, matchThis, ...matchArgs))\n );\n }\n\n public checkOnionOptionsMeta(meta?: IOnionOptionsMeta) {\n return checkMeta(meta, this.sys.config.meta);\n }\n}\n\nfunction __onionMatchSelector(\n match: TypeOnionOptionsMatchRules<string>,\n selector: string | boolean,\n matchThis: any,\n ...matchArgs: any[]\n) {\n return matchSelector(match, selector, matchThis, ...matchArgs);\n}\n","import type { Next, NextSync, OmitNever } from 'zova';\n\nimport type { ServiceOnion } from '../service/onion_.js';\nimport type { IOnionOptionsEnable } from './onion.js';\n\nexport const SymbolDecoratorUseAopMethod = Symbol('SymbolDecoratorUseAopMethod');\nexport interface IUseAopMethodPropMetadata<T extends keyof IAopMethodRecord = never> {\n beanInstance?: any;\n onionName?: T;\n options?: Partial<IAopMethodRecord[T]>;\n}\n\nexport interface IAopMethodRecord {}\n\nexport interface IAopMethodGet {\n get(options: IDecoratorAopMethodOptions, next: NextSync, receiver: any, prop: string): any;\n}\n\nexport interface IAopMethodSet {\n set(\n options: IDecoratorAopMethodOptions,\n value: any,\n next: NextSync,\n receiver: any,\n prop: string,\n ): boolean;\n}\n\nexport interface IAopMethodExecute {\n execute(\n options: IDecoratorAopMethodOptions,\n args: [],\n next: Next | NextSync,\n receiver: any,\n prop: string,\n ): Promise<any> | any;\n}\n\nexport interface IDecoratorAopMethodOptions extends IOnionOptionsEnable {}\n\ndeclare module 'zova-module-a-bean' {\n export interface SysOnion {\n aopMethod: ServiceOnion<IDecoratorAopMethodOptions, keyof IAopMethodRecord>;\n }\n}\n\ndeclare module 'zova' {\n export interface ConfigOnions {\n aopMethod: OmitNever<IAopMethodRecord>;\n }\n\n export interface IBeanSceneRecord {\n aopMethod: never;\n }\n}\n","import type { BeanAopMethodBase, Constructable, IBeanRecord } from 'zova';\n\nimport { appMetadata, appResource, BeanBase, ProxyDisable, Use } from 'zova';\n\nimport type { IAopRecord, IDecoratorAopOptions } from '../types/aop.js';\nimport type { IOnionItem, IOnionSlice } from '../types/onion.js';\n\nimport { SysOnion } from '../bean/sys.onion.js';\nimport { Service } from '../lib/bean.js';\nimport {\n IAopMethodRecord,\n IDecoratorAopMethodOptions,\n IUseAopMethodPropMetadata,\n SymbolDecoratorUseAopMethod,\n} from '../types/aopMethod.js';\n\ntype AopMethodsMatchedAll = Record<string, IUseAopMethodPropMetadata[]>;\n\n@ProxyDisable()\n@Service()\nexport class ServiceAop extends BeanBase {\n @Use()\n $$sysOnion: SysOnion;\n\n async findAopsMatched<T>(\n A: Constructable<T>,\n ): Promise<IOnionSlice<IDecoratorAopOptions, keyof IAopRecord>[] | undefined>;\n async findAopsMatched<K extends keyof IBeanRecord>(\n beanFullName: K,\n ): Promise<IOnionSlice<IDecoratorAopOptions, keyof IAopRecord>[] | undefined>;\n async findAopsMatched(\n beanFullName: string,\n ): Promise<IOnionSlice<IDecoratorAopOptions, keyof IAopRecord>[] | undefined>;\n async findAopsMatched<T>(\n beanFullName: Constructable<T> | string,\n ): Promise<IOnionSlice<IDecoratorAopOptions, keyof IAopRecord>[] | undefined> {\n if (process.env.DEV && this.bean.containerType !== 'sys') {\n throw new Error('should in sys container');\n }\n // beanOptions\n const beanOptions = appResource.getBean(beanFullName as any);\n if (!beanOptions) return;\n // loadOnions\n return await this.$$sysOnion.aop.loadOnionsFromPackage(beanOptions.beanFullName);\n }\n\n async findAopMethodsMatched<T>(A: Constructable<T>): Promise<AopMethodsMatchedAll | undefined>;\n async findAopMethodsMatched<K extends keyof IBeanRecord>(\n beanFullName: K,\n ): Promise<AopMethodsMatchedAll | undefined>;\n async findAopMethodsMatched(beanFullName: string): Promise<AopMethodsMatchedAll | undefined>;\n async findAopMethodsMatched<T>(\n beanFullName: Constructable<T> | string,\n ): Promise<AopMethodsMatchedAll | undefined> {\n if (process.env.DEV && this.bean.containerType !== 'sys') {\n throw new Error('should in sys container');\n }\n // beanOptions\n const beanOptions = appResource.getBean(beanFullName as any);\n if (!beanOptions) return;\n const aopMethodsMatchedAll: AopMethodsMatchedAll = {};\n const uses = appMetadata.getMetadata<Record<string, IUseAopMethodPropMetadata[]>>(\n SymbolDecoratorUseAopMethod,\n beanOptions.beanClass.prototype,\n );\n for (const prop in uses) {\n const onionItems: IOnionItem<IDecoratorAopMethodOptions, keyof IAopMethodRecord>[] = [];\n const aopMethods: IUseAopMethodPropMetadata[] = uses[prop];\n for (const aopMethod of aopMethods) {\n onionItems.push({\n name: aopMethod.onionName as never,\n options: aopMethod.options,\n });\n }\n // load onions\n const onionSlices = await this.$$sysOnion.aopMethod.loadOnions<BeanAopMethodBase>(onionItems);\n // aopMethodsMatched\n const aopMethodsMatched: IUseAopMethodPropMetadata[] = [];\n for (const onionSlice of onionSlices) {\n const beanInstance = await this.sys.bean._getBean(onionSlice.beanFullName as any, true);\n aopMethodsMatched.push({\n onionName: onionSlice.name as any,\n beanInstance,\n options: onionSlice.options as any,\n });\n }\n aopMethodsMatchedAll[prop] = aopMethodsMatched;\n }\n return Object.keys(aopMethodsMatchedAll).length === 0 ? undefined : aopMethodsMatchedAll;\n }\n}\n","import type { IMonkeySysInitialize } from 'zova';\n\nimport { BeanSimple } from 'zova';\n\nexport class MonkeySys extends BeanSimple implements IMonkeySysInitialize {\n async sysInitialize() {\n let beansPreload: string[] = [];\n for (const moduleName in this.sys.meta.module.modulesMeta.modules) {\n const module = this.sys.meta.module.modulesMeta.modules[moduleName];\n if (!module.info.onionsMeta?.beansPreload) continue;\n beansPreload = beansPreload.concat(module.info.onionsMeta?.beansPreload);\n }\n const promises: Promise<any>[] = beansPreload.map(item => {\n return this.sys.bean._getBean(item as any, false);\n });\n await Promise.all(promises);\n }\n}\n","import { createBeanDecorator } from 'zova';\n\nexport function Scope(): ClassDecorator {\n return createBeanDecorator('scope', 'app', false);\n}\n","// eslint-disable\n/** sys: begin */\nexport * from '../bean/sys.onion.js';\n\nimport 'zova';\ndeclare module 'zova' {\n \n \n}\ndeclare module 'zova-module-a-bean' {\n \n export interface SysOnion {\n /** @internal */\n get scope(): ScopeModuleABean;\n }\n\n export interface SysOnion {\n get $beanFullName(): 'a-bean.sys.onion';\n get $onionName(): 'a-bean:onion';\n \n } \n}\n/** sys: end */\n/** sys: begin */\nimport { SysOnion } from '../bean/sys.onion.js';\nimport 'zova';\ndeclare module 'zova' {\n export interface IBeanRecordGeneral {\n 'a-bean.sys.onion': SysOnion;\n }\n}\n/** sys: end */\n/** service: begin */\nexport * from '../service/aop.js';\nexport * from '../service/onion_.js';\n\nimport 'zova-module-a-bean';\ndeclare module 'zova-module-a-bean' {\n \n export interface IServiceRecord {\n 'a-bean:aop': never;\n }\n\n \n}\ndeclare module 'zova-module-a-bean' {\n \n export interface ServiceAop {\n /** @internal */\n get scope(): ScopeModuleABean;\n }\n\n export interface ServiceAop {\n get $beanFullName(): 'a-bean.service.aop';\n get $onionName(): 'a-bean:aop';\n \n } \n}\n/** service: end */\n/** service: begin */\nimport { ServiceAop } from '../service/aop.js';\nimport 'zova';\ndeclare module 'zova' {\n export interface IBeanRecordGeneral {\n 'a-bean.service.aop': ServiceAop;\n }\n}\n/** service: end */\n/** monkeySys: begin */\nexport * from '../monkeySys.js';\n/** monkeySys: end */\n/** scope: begin */\nimport { BeanScopeBase, type BeanScopeUtil } from 'zova';\nimport { Scope } from '../lib/scope.js';\n\n@Scope()\nexport class ScopeModuleABean extends BeanScopeBase {}\n\nexport interface ScopeModuleABean {\n util: BeanScopeUtil;\n}\n\nimport 'zova';\ndeclare module 'zova' {\n export interface IBeanScopeRecord {\n 'a-bean': ScopeModuleABean;\n }\n \n \n\n \n\n \n}\n \n/** scope: end */\n","import type { MetadataKey } from 'zova';\n\nimport { appMetadata, registerMappedClassMetadataKey } from 'zova';\n\nimport type { IAopMethodRecord, IUseAopMethodPropMetadata } from '../types/aopMethod.js';\n\nimport { SymbolDecoratorUseAopMethod } from '../types/aopMethod.js';\n\nexport function UseAopMethod<T extends keyof IAopMethodRecord>(\n aopMethodName: T,\n options?: Partial<IAopMethodRecord[T]>,\n): PropertyDescriptor & MethodDecorator {\n return function (target: object, prop: MetadataKey, descriptor?: PropertyDescriptor) {\n registerMappedClassMetadataKey(target, SymbolDecoratorUseAopMethod);\n const uses = appMetadata.getOwnMetadataMap<MetadataKey, IUseAopMethodPropMetadata<T>[]>(\n true,\n SymbolDecoratorUseAopMethod,\n target,\n );\n if (!uses[prop]) uses[prop] = [];\n uses[prop].push({ onionName: aopMethodName, options });\n return descriptor;\n } as any;\n}\n","import type { ZovaOnionOptionsMeta } from '@cabloy/module-info';\n\nexport const SymbolUseOnionLocal = Symbol('SymbolUseOnionLocal');\nexport const SymbolUseOnionOptions = Symbol('SymbolUseOnionOptions');\n\nexport type TypeComposer = (context: any, next?: any) => any;\n\nexport type IOnionExecuteCustom<OPTIONS, ONIONNAME> = (\n onionSlice: IOnionSlice<OPTIONS, ONIONNAME>,\n data: any,\n next: Function,\n) => any;\n\nexport type TypeUseOnionGlobalBaseOptions<T> = Omit<\n T,\n 'global' | 'dependencies' | 'dependents' | 'ignore' | 'match'\n>;\n\nexport interface IOnionOptionsEnable {\n enable?: boolean;\n meta?: IOnionOptionsMeta;\n}\n\nexport type TypeOnionOptionsMatchFunction = (this: any, ...args: any[]) => boolean;\nexport type TypeOnionOptionsMatchRule<T> = T | RegExp | TypeOnionOptionsMatchFunction;\nexport type TypeOnionOptionsMatchRules<T> =\n | TypeOnionOptionsMatchRule<T>[]\n | TypeOnionOptionsMatchRule<T>;\n\nexport interface IOnionOptionsMatch<T> {\n match?: T[] | T;\n ignore?: T[] | T;\n}\n\nexport interface IOnionOptionsDeps<T> {\n dependencies?: T[] | T;\n dependents?: T[] | T;\n}\n\nexport interface IOnionOptionsMeta extends ZovaOnionOptionsMeta {}\n\nexport interface IOnionOptionsBase<T extends string>\n extends IOnionOptionsEnable, IOnionOptionsMatch<TypeOnionOptionsMatchRule<T>> {}\n\nexport interface IOnionSlice<OPTIONS = unknown, ONIONNAME = string, T = unknown> {\n name: ONIONNAME;\n options: OPTIONS;\n beanFullName: string;\n beanInstance?: T;\n}\n\nexport interface IOnionItem<OPTIONS = unknown, ONIONNAME = string> {\n name: ONIONNAME;\n options?: Partial<OPTIONS>;\n}\n\nexport interface ConfigOnions {}\n\ndeclare module 'zova' {\n export interface ZovaConfig {\n onions: ConfigOnions;\n }\n}\n"],"mappings":"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"}
@@ -3,7 +3,6 @@ import type { IDecoratorAopMethodOptions } from '../types/aopMethod.js';
3
3
  export declare function Sys(): ClassDecorator;
4
4
  export declare function Bean(): ClassDecorator;
5
5
  export declare function Service(): ClassDecorator;
6
- export declare function Store(): ClassDecorator;
7
6
  export declare function Tool(): ClassDecorator;
8
7
  export declare function Data(): ClassDecorator;
9
8
  export declare function Controller(): ClassDecorator;
@@ -1 +1 @@
1
- {"version":3,"file":"bean.d.ts","sourceRoot":"","sources":["../../src/lib/bean.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AAExE,wBAAgB,GAAG,IAAI,cAAc,CAEpC;AAED,wBAAgB,IAAI,IAAI,cAAc,CAErC;AAED,wBAAgB,OAAO,IAAI,cAAc,CAExC;AAED,wBAAgB,KAAK,IAAI,cAAc,CAEtC;AAED,wBAAgB,IAAI,IAAI,cAAc,CAErC;AAED,wBAAgB,IAAI,IAAI,cAAc,CAErC;AAED,wBAAgB,UAAU,IAAI,cAAc,CAE3C;AAED,wBAAgB,MAAM,IAAI,cAAc,CAEvC;AAED,wBAAgB,KAAK,IAAI,cAAc,CAEtC;AAED,wBAAgB,GAAG,CAAC,OAAO,EAAE,oBAAoB,GAAG,cAAc,CAEjE;AAED,wBAAgB,SAAS,CAAC,CAAC,SAAS,0BAA0B,EAAE,OAAO,CAAC,EAAE,CAAC,GAAG,cAAc,CAE3F"}
1
+ {"version":3,"file":"bean.d.ts","sourceRoot":"","sources":["../../src/lib/bean.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AAExE,wBAAgB,GAAG,IAAI,cAAc,CAEpC;AAED,wBAAgB,IAAI,IAAI,cAAc,CAErC;AAED,wBAAgB,OAAO,IAAI,cAAc,CAExC;AAED,wBAAgB,IAAI,IAAI,cAAc,CAErC;AAED,wBAAgB,IAAI,IAAI,cAAc,CAErC;AAED,wBAAgB,UAAU,IAAI,cAAc,CAE3C;AAED,wBAAgB,MAAM,IAAI,cAAc,CAEvC;AAED,wBAAgB,KAAK,IAAI,cAAc,CAEtC;AAED,wBAAgB,GAAG,CAAC,OAAO,EAAE,oBAAoB,GAAG,cAAc,CAEjE;AAED,wBAAgB,SAAS,CAAC,CAAC,SAAS,0BAA0B,EAAE,OAAO,CAAC,EAAE,CAAC,GAAG,cAAc,CAE3F"}
@@ -5,7 +5,6 @@ declare module 'zova' {
5
5
  bean: never;
6
6
  scope: never;
7
7
  service: never;
8
- store: never;
9
8
  tool: never;
10
9
  data: never;
11
10
  controller: never;
@@ -1 +1 @@
1
- {"version":3,"file":"bean.d.ts","sourceRoot":"","sources":["../../src/types/bean.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC;AACV,OAAO,QAAQ,MAAM,CAAC;IACpB,UAAiB,gBAAgB;QAC/B,GAAG,EAAE,KAAK,CAAC;QACX,IAAI,EAAE,KAAK,CAAC;QACZ,KAAK,EAAE,KAAK,CAAC;QACb,OAAO,EAAE,KAAK,CAAC;QACf,KAAK,EAAE,KAAK,CAAC;QACb,IAAI,EAAE,KAAK,CAAC;QACZ,IAAI,EAAE,KAAK,CAAC;QACZ,UAAU,EAAE,KAAK,CAAC;QAClB,MAAM,EAAE,KAAK,CAAC;QACd,KAAK,EAAE,KAAK,CAAC;KACd;CACF"}
1
+ {"version":3,"file":"bean.d.ts","sourceRoot":"","sources":["../../src/types/bean.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC;AACV,OAAO,QAAQ,MAAM,CAAC;IACpB,UAAiB,gBAAgB;QAC/B,GAAG,EAAE,KAAK,CAAC;QACX,IAAI,EAAE,KAAK,CAAC;QACZ,KAAK,EAAE,KAAK,CAAC;QACb,OAAO,EAAE,KAAK,CAAC;QACf,IAAI,EAAE,KAAK,CAAC;QACZ,IAAI,EAAE,KAAK,CAAC;QACZ,UAAU,EAAE,KAAK,CAAC;QAClB,MAAM,EAAE,KAAK,CAAC;QACd,KAAK,EAAE,KAAK,CAAC;KACd;CACF"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "zova-module-a-bean",
3
- "version": "5.1.13",
4
- "gitHead": "6162f8e212146d3e5f98145fcf43adc52912694e",
3
+ "version": "5.1.16",
4
+ "gitHead": "6c7a09c8f0a8a0f41c5090b544a1667dbc689f0e",
5
5
  "description": "",
6
6
  "keywords": [
7
7
  "Zova Module"
@@ -64,11 +64,6 @@
64
64
  "optionsGlobalInterfaceFrom": "zova-module-a-bean",
65
65
  "boilerplate": "service/boilerplate"
66
66
  },
67
- "store": {
68
- "beanGeneral": true,
69
- "optionsNone": true,
70
- "boilerplate": "store/boilerplate"
71
- },
72
67
  "tool": {
73
68
  "beanGeneral": true,
74
69
  "optionsNone": true,
package/src/lib/bean.ts CHANGED
@@ -15,10 +15,6 @@ export function Service(): ClassDecorator {
15
15
  return createBeanDecorator('service', 'ctx');
16
16
  }
17
17
 
18
- export function Store(): ClassDecorator {
19
- return createBeanDecorator('store', 'app');
20
- }
21
-
22
18
  export function Tool(): ClassDecorator {
23
19
  return createBeanDecorator('tool', 'app');
24
20
  }
package/src/types/bean.ts CHANGED
@@ -5,7 +5,6 @@ declare module 'zova' {
5
5
  bean: never;
6
6
  scope: never;
7
7
  service: never;
8
- store: never;
9
8
  tool: never;
10
9
  data: never;
11
10
  controller: never;
@@ -1,7 +0,0 @@
1
- import { BeanBase } from 'zova';
2
- import { Store } from 'zova-module-a-bean';
3
-
4
- @Store()
5
- export class Store<%=argv.beanNameCapitalize%> extends BeanBase {
6
- protected async __init__() {}
7
- }