vona 1.0.0 → 5.0.4
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.en-US +3 -0
- package/README.md +1 -1
- package/README.zh-CN.md +1 -0
- package/dist/app/extend/context.d.ts +4 -0
- package/dist/app/extend/context.js +152 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.js +35 -0
- package/dist/lib/base/dbTransaction.d.ts +12 -0
- package/dist/lib/base/dbTransaction.js +55 -0
- package/dist/lib/base/error.d.ts +18 -0
- package/dist/lib/base/error.js +70 -0
- package/dist/lib/base/model.d.ts +22 -0
- package/dist/lib/base/model.js +253 -0
- package/dist/lib/bean/_beanLocal_.d.ts +6 -0
- package/dist/lib/bean/_beanLocal_.js +16 -0
- package/dist/lib/bean/beanBase.d.ts +11 -0
- package/dist/lib/bean/beanBase.js +34 -0
- package/dist/lib/bean/beanBaseSimple.d.ts +8 -0
- package/dist/lib/bean/beanBaseSimple.js +31 -0
- package/dist/lib/bean/beanContainer.d.ts +39 -0
- package/dist/lib/bean/beanContainer.js +514 -0
- package/dist/lib/bean/beanLocal.d.ts +6 -0
- package/dist/lib/bean/beanLocal.js +16 -0
- package/dist/lib/bean/beanModuleScopeBase.d.ts +10 -0
- package/dist/lib/bean/beanModuleScopeBase.js +28 -0
- package/dist/lib/bean/beanScopeBase.d.ts +6 -0
- package/dist/lib/bean/beanScopeBase.js +19 -0
- package/dist/lib/bean/beanScopeScene.d.ts +12 -0
- package/dist/lib/bean/beanScopeScene.js +23 -0
- package/dist/lib/bean/beanSimple.d.ts +7 -0
- package/dist/lib/bean/beanSimple.js +24 -0
- package/dist/lib/bean/index.d.ts +8 -0
- package/dist/lib/bean/index.js +24 -0
- package/dist/lib/bean/resource/config/broadcast.d.ts +7 -0
- package/dist/lib/bean/resource/config/broadcast.js +3 -0
- package/dist/lib/bean/resource/config/index.d.ts +2 -0
- package/dist/lib/bean/resource/config/index.js +18 -0
- package/dist/lib/bean/resource/config/middleware.d.ts +9 -0
- package/dist/lib/bean/resource/config/middleware.js +3 -0
- package/dist/lib/bean/resource/config/startup.d.ts +9 -0
- package/dist/lib/bean/resource/config/startup.js +3 -0
- package/dist/lib/bean/resource/config/type.d.ts +43 -0
- package/dist/lib/bean/resource/config/type.js +3 -0
- package/dist/lib/bean/resource/constant/index.d.ts +2 -0
- package/dist/lib/bean/resource/constant/index.js +18 -0
- package/dist/lib/bean/resource/constant/type.d.ts +2 -0
- package/dist/lib/bean/resource/constant/type.js +3 -0
- package/dist/lib/bean/resource/entity/entityBase.d.ts +21 -0
- package/dist/lib/bean/resource/entity/entityBase.js +20 -0
- package/dist/lib/bean/resource/entity/index.d.ts +2 -0
- package/dist/lib/bean/resource/entity/index.js +18 -0
- package/dist/lib/bean/resource/error/beanScopeError.d.ts +11 -0
- package/dist/lib/bean/resource/error/beanScopeError.js +34 -0
- package/dist/lib/bean/resource/error/beanScopeErrorImpl.d.ts +14 -0
- package/dist/lib/bean/resource/error/beanScopeErrorImpl.js +35 -0
- package/dist/lib/bean/resource/error/errorClass.d.ts +18 -0
- package/dist/lib/bean/resource/error/errorClass.js +78 -0
- package/dist/lib/bean/resource/error/errorContext.d.ts +38 -0
- package/dist/lib/bean/resource/error/errorContext.js +3 -0
- package/dist/lib/bean/resource/error/errorGlobal.d.ts +8 -0
- package/dist/lib/bean/resource/error/errorGlobal.js +3 -0
- package/dist/lib/bean/resource/error/errorInternal.d.ts +67 -0
- package/dist/lib/bean/resource/error/errorInternal.js +70 -0
- package/dist/lib/bean/resource/error/errorObject.d.ts +5 -0
- package/dist/lib/bean/resource/error/errorObject.js +3 -0
- package/dist/lib/bean/resource/error/index.d.ts +9 -0
- package/dist/lib/bean/resource/error/index.js +25 -0
- package/dist/lib/bean/resource/error/type.d.ts +9 -0
- package/dist/lib/bean/resource/error/type.js +3 -0
- package/dist/lib/bean/resource/index.d.ts +8 -0
- package/dist/lib/bean/resource/index.js +24 -0
- package/dist/lib/bean/resource/locale/beanScopeLocale.d.ts +11 -0
- package/dist/lib/bean/resource/locale/beanScopeLocale.js +33 -0
- package/dist/lib/bean/resource/locale/beanScopeLocaleImpl.d.ts +3 -0
- package/dist/lib/bean/resource/locale/beanScopeLocaleImpl.js +14 -0
- package/dist/lib/bean/resource/locale/index.d.ts +4 -0
- package/dist/lib/bean/resource/locale/index.js +20 -0
- package/dist/lib/bean/resource/locale/localeCtx.d.ts +8 -0
- package/dist/lib/bean/resource/locale/localeCtx.js +63 -0
- package/dist/lib/bean/resource/locale/type.d.ts +19 -0
- package/dist/lib/bean/resource/locale/type.js +3 -0
- package/dist/lib/bean/resource/model/beanModelBase.d.ts +24 -0
- package/dist/lib/bean/resource/model/beanModelBase.js +165 -0
- package/dist/lib/bean/resource/model/beanModelBaseInner.d.ts +29 -0
- package/dist/lib/bean/resource/model/beanModelBaseInner.js +86 -0
- package/dist/lib/bean/resource/model/index.d.ts +2 -0
- package/dist/lib/bean/resource/model/index.js +18 -0
- package/dist/lib/bean/resource/model/type.d.ts +12 -0
- package/dist/lib/bean/resource/model/type.js +3 -0
- package/dist/lib/bean/resource/route/index.d.ts +2 -0
- package/dist/lib/bean/resource/route/index.js +18 -0
- package/dist/lib/bean/resource/route/type.d.ts +60 -0
- package/dist/lib/bean/resource/route/type.js +3 -0
- package/dist/lib/bean/scope/beanScopeBase.d.ts +19 -0
- package/dist/lib/bean/scope/beanScopeBase.js +104 -0
- package/dist/lib/bean/scope/beanScopeBean.d.ts +10 -0
- package/dist/lib/bean/scope/beanScopeBean.js +34 -0
- package/dist/lib/bean/scope/beanScopeError.d.ts +11 -0
- package/dist/lib/bean/scope/beanScopeError.js +21 -0
- package/dist/lib/bean/scope/beanScopeErrorImpl.d.ts +14 -0
- package/dist/lib/bean/scope/beanScopeErrorImpl.js +21 -0
- package/dist/lib/bean/scope/beanScopeScene.d.ts +12 -0
- package/dist/lib/bean/scope/beanScopeScene.js +42 -0
- package/dist/lib/bean/scope/index.d.ts +5 -0
- package/dist/lib/bean/scope/index.js +21 -0
- package/dist/lib/bean/scope/type.d.ts +21 -0
- package/dist/lib/bean/scope/type.js +3 -0
- package/dist/lib/bean/type.d.ts +17 -0
- package/dist/lib/bean/type.js +4 -0
- package/dist/lib/core/index.d.ts +5 -0
- package/dist/lib/core/index.js +21 -0
- package/dist/lib/core/meta.d.ts +65 -0
- package/dist/lib/core/meta.js +335 -0
- package/dist/lib/core/metaCtx.d.ts +16 -0
- package/dist/lib/core/metaCtx.js +71 -0
- package/dist/lib/core/metadata.d.ts +12 -0
- package/dist/lib/core/metadata.js +52 -0
- package/dist/lib/core/resource.d.ts +29 -0
- package/dist/lib/core/resource.js +172 -0
- package/dist/lib/decorator/class/aop.d.ts +3 -0
- package/dist/lib/decorator/class/aop.js +23 -0
- package/dist/lib/decorator/class/atom.d.ts +3 -0
- package/dist/lib/decorator/class/atom.js +22 -0
- package/dist/lib/decorator/class/bean.d.ts +3 -0
- package/dist/lib/decorator/class/bean.js +23 -0
- package/dist/lib/decorator/class/controller.d.ts +3 -0
- package/dist/lib/decorator/class/controller.js +22 -0
- package/dist/lib/decorator/class/index.d.ts +10 -0
- package/dist/lib/decorator/class/index.js +26 -0
- package/dist/lib/decorator/class/local.d.ts +3 -0
- package/dist/lib/decorator/class/local.js +23 -0
- package/dist/lib/decorator/class/model.d.ts +3 -0
- package/dist/lib/decorator/class/model.js +28 -0
- package/dist/lib/decorator/class/scope.d.ts +2 -0
- package/dist/lib/decorator/class/scope.js +20 -0
- package/dist/lib/decorator/class/service.d.ts +3 -0
- package/dist/lib/decorator/class/service.js +23 -0
- package/dist/lib/decorator/class/use.d.ts +5 -0
- package/dist/lib/decorator/class/use.js +43 -0
- package/dist/lib/decorator/class/util.d.ts +3 -0
- package/dist/lib/decorator/class/util.js +10 -0
- package/dist/lib/decorator/class/virtual.d.ts +3 -0
- package/dist/lib/decorator/class/virtual.js +24 -0
- package/dist/lib/decorator/index.d.ts +7 -0
- package/dist/lib/decorator/index.js +23 -0
- package/dist/lib/decorator/interface/beanOptions.d.ts +55 -0
- package/dist/lib/decorator/interface/beanOptions.js +8 -0
- package/dist/lib/decorator/interface/useOptions.d.ts +14 -0
- package/dist/lib/decorator/interface/useOptions.js +3 -0
- package/dist/lib/decorator/type/constructable.d.ts +2 -0
- package/dist/lib/decorator/type/constructable.js +3 -0
- package/dist/lib/decorator/type/containerScope.d.ts +2 -0
- package/dist/lib/decorator/type/containerScope.js +3 -0
- package/dist/lib/decorator/type/injectionScope.d.ts +2 -0
- package/dist/lib/decorator/type/injectionScope.js +3 -0
- package/dist/lib/error/error.d.ts +18 -0
- package/dist/lib/error/error.js +71 -0
- package/dist/lib/error/errorClass.d.ts +18 -0
- package/dist/lib/error/errorClass.js +72 -0
- package/dist/lib/error/errorContext.d.ts +38 -0
- package/dist/lib/error/errorContext.js +3 -0
- package/dist/lib/error/errorGlobal.d.ts +8 -0
- package/dist/lib/error/errorGlobal.js +3 -0
- package/dist/lib/error/errorInternal.d.ts +67 -0
- package/dist/lib/error/errorInternal.js +70 -0
- package/dist/lib/error/errorObject.d.ts +5 -0
- package/dist/lib/error/errorObject.js +3 -0
- package/dist/lib/error/index.d.ts +5 -0
- package/dist/lib/error/index.js +21 -0
- package/dist/lib/framework/bootstrap.d.ts +9 -0
- package/dist/lib/framework/bootstrap.js +35 -0
- package/dist/lib/framework/framework.d.ts +11 -0
- package/dist/lib/framework/framework.js +28 -0
- package/dist/lib/framework/loader.d.ts +21 -0
- package/dist/lib/framework/loader.js +57 -0
- package/dist/lib/framework/meta.d.ts +2 -0
- package/dist/lib/framework/meta.js +23 -0
- package/dist/lib/framework/metaClass.d.ts +2 -0
- package/dist/lib/framework/metaClass.js +26 -0
- package/dist/lib/framework/moduleInfo.d.ts +3 -0
- package/dist/lib/framework/moduleInfo.js +67 -0
- package/dist/lib/framework/util.d.ts +4 -0
- package/dist/lib/framework/util.js +15 -0
- package/dist/lib/module/asset/errors.d.ts +68 -0
- package/dist/lib/module/asset/errors.js +69 -0
- package/dist/lib/module/bean/index.d.ts +4 -0
- package/dist/lib/module/bean/index.js +24 -0
- package/dist/lib/module/broadcast/broadcast.d.ts +3 -0
- package/dist/lib/module/broadcast/broadcast.js +49 -0
- package/dist/lib/module/broadcast/broadcastClient.d.ts +24 -0
- package/dist/lib/module/broadcast/broadcastClient.js +91 -0
- package/dist/lib/module/cluster/agent.d.ts +3 -0
- package/dist/lib/module/cluster/agent.js +22 -0
- package/dist/lib/module/cluster/app.d.ts +3 -0
- package/dist/lib/module/cluster/app.js +26 -0
- package/dist/lib/module/config.d.ts +3 -0
- package/dist/lib/module/config.js +67 -0
- package/dist/lib/module/constant.d.ts +3 -0
- package/dist/lib/module/constant.js +46 -0
- package/dist/lib/module/contextPatch.d.ts +3 -0
- package/dist/lib/module/contextPatch.js +16 -0
- package/dist/lib/module/errors.d.ts +3 -0
- package/dist/lib/module/errors.js +49 -0
- package/dist/lib/module/index.d.ts +2 -0
- package/dist/lib/module/index.js +3 -0
- package/dist/lib/module/loader.d.ts +5 -0
- package/dist/lib/module/loader.js +73 -0
- package/dist/lib/module/locales.d.ts +3 -0
- package/dist/lib/module/locales.js +132 -0
- package/dist/lib/module/messenger.d.ts +25 -0
- package/dist/lib/module/messenger.js +128 -0
- package/dist/lib/module/middleware.d.ts +3 -0
- package/dist/lib/module/middleware.js +113 -0
- package/dist/lib/module/model.d.ts +3 -0
- package/dist/lib/module/model.js +47 -0
- package/dist/lib/module/module.d.ts +12 -0
- package/dist/lib/module/module.js +134 -0
- package/dist/lib/module/moduleMeta.d.ts +3 -0
- package/dist/lib/module/moduleMeta.js +26 -0
- package/dist/lib/module/queue/queue.d.ts +3 -0
- package/dist/lib/module/queue/queue.js +59 -0
- package/dist/lib/module/queue/queueClient.d.ts +26 -0
- package/dist/lib/module/queue/queueClient.js +262 -0
- package/dist/lib/module/redis.d.ts +11 -0
- package/dist/lib/module/redis.js +46 -0
- package/dist/lib/module/reload/development.d.ts +3 -0
- package/dist/lib/module/reload/development.js +98 -0
- package/dist/lib/module/reload/reload.d.ts +16 -0
- package/dist/lib/module/reload/reload.js +113 -0
- package/dist/lib/module/reload.d.ts +7 -0
- package/dist/lib/module/reload.js +17 -0
- package/dist/lib/module/route.d.ts +10 -0
- package/dist/lib/module/route.js +239 -0
- package/dist/lib/module/schedule.d.ts +3 -0
- package/dist/lib/module/schedule.js +129 -0
- package/dist/lib/module/service.d.ts +3 -0
- package/dist/lib/module/service.js +35 -0
- package/dist/lib/module/socketio.d.ts +5 -0
- package/dist/lib/module/socketio.js +47 -0
- package/dist/lib/module/startup.d.ts +2 -0
- package/dist/lib/module/startup.js +134 -0
- package/dist/lib/module/version/clear.d.ts +2 -0
- package/dist/lib/module/version/clear.js +42 -0
- package/dist/lib/module/version/ready.d.ts +6 -0
- package/dist/lib/module/version/ready.js +106 -0
- package/dist/lib/resource/error/errorClass.d.ts +18 -0
- package/dist/lib/resource/error/errorClass.js +72 -0
- package/dist/lib/resource/error/errorContext.d.ts +38 -0
- package/dist/lib/resource/error/errorContext.js +3 -0
- package/dist/lib/resource/error/errorGlobal.d.ts +8 -0
- package/dist/lib/resource/error/errorGlobal.js +3 -0
- package/dist/lib/resource/error/errorInternal.d.ts +67 -0
- package/dist/lib/resource/error/errorInternal.js +70 -0
- package/dist/lib/resource/error/errorObject.d.ts +5 -0
- package/dist/lib/resource/error/errorObject.js +3 -0
- package/dist/lib/resource/error/index.d.ts +5 -0
- package/dist/lib/resource/error/index.js +21 -0
- package/dist/lib/utils/index.d.ts +2 -0
- package/dist/lib/utils/index.js +18 -0
- package/dist/lib/utils/isClass.d.ts +2 -0
- package/dist/lib/utils/isClass.js +20 -0
- package/dist/lib/utils/mockUtil.d.ts +11 -0
- package/dist/lib/utils/mockUtil.js +34 -0
- package/dist/lib/utils/mockUtilCtx.d.ts +10 -0
- package/dist/lib/utils/mockUtilCtx.js +35 -0
- package/dist/lib/utils/performAction.d.ts +19 -0
- package/dist/lib/utils/performAction.js +137 -0
- package/dist/lib/utils/util.d.ts +63 -0
- package/dist/lib/utils/util.js +445 -0
- package/dist/lib/utils/utilCtx.d.ts +34 -0
- package/dist/lib/utils/utilCtx.js +137 -0
- package/dist/types/application/app.d.ts +19 -0
- package/dist/types/application/app.js +28 -0
- package/dist/types/application/index.d.ts +2 -0
- package/dist/types/application/index.js +18 -0
- package/dist/types/config/appInfo.d.ts +4 -0
- package/dist/types/config/appInfo.js +3 -0
- package/dist/types/config/config.d.ts +10 -0
- package/dist/types/config/config.js +3 -0
- package/dist/types/config/development.d.ts +4 -0
- package/dist/types/config/development.js +3 -0
- package/dist/types/config/index.d.ts +4 -0
- package/dist/types/config/index.js +20 -0
- package/dist/types/config/locale.d.ts +10 -0
- package/dist/types/config/locale.js +7 -0
- package/dist/types/context/contextBase.d.ts +21 -0
- package/dist/types/context/contextBase.js +3 -0
- package/dist/types/context/contextConfig.d.ts +4 -0
- package/dist/types/context/contextConfig.js +3 -0
- package/dist/types/context/contextError.d.ts +25 -0
- package/dist/types/context/contextError.js +3 -0
- package/dist/types/context/contextLocale.d.ts +9 -0
- package/dist/types/context/contextLocale.js +3 -0
- package/dist/types/context/contextOthers.d.ts +4 -0
- package/dist/types/context/contextOthers.js +3 -0
- package/dist/types/context/contextState.d.ts +8 -0
- package/dist/types/context/contextState.js +3 -0
- package/dist/types/context/index.d.ts +18 -0
- package/dist/types/context/index.js +18 -0
- package/dist/types/enum/appEvent.d.ts +5 -0
- package/dist/types/enum/appEvent.js +9 -0
- package/dist/types/enum/index.d.ts +2 -0
- package/dist/types/enum/index.js +18 -0
- package/dist/types/index.d.ts +7 -0
- package/dist/types/index.js +23 -0
- package/dist/types/interface/broadcast.d.ts +5 -0
- package/dist/types/interface/broadcast.js +3 -0
- package/dist/types/interface/error.d.ts +8 -0
- package/dist/types/interface/error.js +3 -0
- package/dist/types/interface/index.d.ts +6 -0
- package/dist/types/interface/index.js +22 -0
- package/dist/types/interface/module.d.ts +32 -0
- package/dist/types/interface/module.js +18 -0
- package/dist/types/interface/monkey.d.ts +25 -0
- package/dist/types/interface/monkey.js +3 -0
- package/dist/types/interface/queue.d.ts +29 -0
- package/dist/types/interface/queue.js +3 -0
- package/dist/types/interface/schedule.d.ts +11 -0
- package/dist/types/interface/schedule.js +3 -0
- package/dist/types/utils/cast.d.ts +6 -0
- package/dist/types/utils/cast.js +8 -0
- package/dist/types/utils/index.d.ts +3 -0
- package/dist/types/utils/index.js +19 -0
- package/dist/types/utils/powerPartial.d.ts +4 -0
- package/dist/types/utils/powerPartial.js +3 -0
- package/package.json +61 -14
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { BeanBaseSimple } from './beanBaseSimple.js';
|
|
2
|
+
import { IModuleLocaleText } from './resource/locale/type.js';
|
|
3
|
+
import { IBeanScopeRecord, TypeBeanScopeRecordKeys } from './type.js';
|
|
4
|
+
export declare class BeanBase<TScopeModule = unknown> extends BeanBaseSimple {
|
|
5
|
+
protected get $text(): IModuleLocaleText;
|
|
6
|
+
protected get scope(): TScopeModule;
|
|
7
|
+
protected getScope<K extends TypeBeanScopeRecordKeys>(moduleScope: K): IBeanScopeRecord[K];
|
|
8
|
+
protected getScope(): TScopeModule;
|
|
9
|
+
protected __get__(prop: PropertyKey): undefined;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=beanBase.d.ts.map
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BeanBase = void 0;
|
|
4
|
+
const word_utils_1 = require("@cabloy/word-utils");
|
|
5
|
+
const beanBaseSimple_js_1 = require("./beanBaseSimple.js");
|
|
6
|
+
const SymbolText = Symbol('SymbolText');
|
|
7
|
+
class BeanBase extends beanBaseSimple_js_1.BeanBaseSimple {
|
|
8
|
+
get $text() {
|
|
9
|
+
if (!this[SymbolText]) {
|
|
10
|
+
this[SymbolText] = this.ctx.meta.locale.createLocaleText(this.moduleBelong);
|
|
11
|
+
}
|
|
12
|
+
return this[SymbolText];
|
|
13
|
+
}
|
|
14
|
+
get scope() {
|
|
15
|
+
return this.getScope();
|
|
16
|
+
}
|
|
17
|
+
getScope(moduleScope) {
|
|
18
|
+
if (!moduleScope) {
|
|
19
|
+
return this.bean.scope(this.moduleBelong);
|
|
20
|
+
}
|
|
21
|
+
return this.bean.scope(moduleScope);
|
|
22
|
+
}
|
|
23
|
+
__get__(prop) {
|
|
24
|
+
if (typeof prop === 'string' && prop.startsWith('$scope')) {
|
|
25
|
+
let moduleName = (0, word_utils_1.splitWords)(prop.substring('$scope'.length), true, '-');
|
|
26
|
+
if (!moduleName?.includes('-')) {
|
|
27
|
+
moduleName = 'a-' + moduleName;
|
|
28
|
+
}
|
|
29
|
+
return this.getScope(moduleName);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
exports.BeanBase = BeanBase;
|
|
34
|
+
//# sourceMappingURL=beanBase.js.map
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { BeanSimple } from './beanSimple.js';
|
|
2
|
+
export declare class BeanBaseSimple extends BeanSimple {
|
|
3
|
+
private __beanFullName__;
|
|
4
|
+
private __moduleBelong__?;
|
|
5
|
+
constructor(moduleBelong?: string);
|
|
6
|
+
protected get moduleBelong(): string;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=beanBaseSimple.d.ts.map
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BeanBaseSimple = void 0;
|
|
4
|
+
const resource_js_1 = require("../core/resource.js");
|
|
5
|
+
const beanSimple_js_1 = require("./beanSimple.js");
|
|
6
|
+
class BeanBaseSimple extends beanSimple_js_1.BeanSimple {
|
|
7
|
+
constructor(moduleBelong) {
|
|
8
|
+
super();
|
|
9
|
+
Object.defineProperty(this, "__beanFullName__", {
|
|
10
|
+
enumerable: true,
|
|
11
|
+
configurable: true,
|
|
12
|
+
writable: true,
|
|
13
|
+
value: void 0
|
|
14
|
+
});
|
|
15
|
+
Object.defineProperty(this, "__moduleBelong__", {
|
|
16
|
+
enumerable: true,
|
|
17
|
+
configurable: true,
|
|
18
|
+
writable: true,
|
|
19
|
+
value: void 0
|
|
20
|
+
});
|
|
21
|
+
if (moduleBelong && typeof moduleBelong !== 'string') {
|
|
22
|
+
throw new Error(`moduleBelong not valid: ${moduleBelong}`);
|
|
23
|
+
}
|
|
24
|
+
this.__moduleBelong__ = moduleBelong;
|
|
25
|
+
}
|
|
26
|
+
get moduleBelong() {
|
|
27
|
+
return this.__moduleBelong__ || resource_js_1.appResource._getModuleBelong(this.__beanFullName__);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
exports.BeanBaseSimple = BeanBaseSimple;
|
|
31
|
+
//# sourceMappingURL=beanBaseSimple.js.map
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { VonaApplication, VonaContext } from '../../types/index.js';
|
|
2
|
+
import { Constructable } from '../decorator/index.js';
|
|
3
|
+
import { IBeanRecord, IBeanRecordGlobal, IBeanScopeRecord, TypeBeanScopeRecordKeys } from './type.js';
|
|
4
|
+
declare const BeanContainerInstances: unique symbol;
|
|
5
|
+
export interface BeanContainer extends IBeanRecordGlobal {
|
|
6
|
+
}
|
|
7
|
+
export declare class BeanContainer {
|
|
8
|
+
private app;
|
|
9
|
+
private ctx;
|
|
10
|
+
private [BeanContainerInstances];
|
|
11
|
+
static create(app: VonaApplication, ctx: VonaContext | null): BeanContainer;
|
|
12
|
+
protected constructor(app: VonaApplication, ctx: VonaContext | null);
|
|
13
|
+
/** get specific module's scope */
|
|
14
|
+
scope<K extends TypeBeanScopeRecordKeys>(moduleScope: K): IBeanScopeRecord[K];
|
|
15
|
+
scope<T>(moduleScope: string): T;
|
|
16
|
+
_getBean<T>(A: Constructable<T>): T;
|
|
17
|
+
_getBean<K extends keyof IBeanRecord>(beanFullName: K): IBeanRecord[K];
|
|
18
|
+
_getBeanSelector<T>(A: Constructable<T>, selector?: string): T;
|
|
19
|
+
_getBeanSelector<K extends keyof IBeanRecord>(beanFullName: K, selector?: string): IBeanRecord[K];
|
|
20
|
+
_newBean<T>(A: Constructable<T>, ...args: any[]): T;
|
|
21
|
+
_newBean<K extends keyof IBeanRecord>(beanFullName: K, ...args: any[]): IBeanRecord[K];
|
|
22
|
+
_newBeanSelector<T>(A: Constructable<T>, selector?: string, ...args: any[]): T;
|
|
23
|
+
_newBeanSelector<K extends keyof IBeanRecord>(beanFullName: K, selector?: string, ...args: any[]): IBeanRecord[K];
|
|
24
|
+
private _createBeanInstance;
|
|
25
|
+
private _injectBeanInstance;
|
|
26
|
+
private _injectBeanInstancePropLazy;
|
|
27
|
+
private _injectBeanInstanceProp;
|
|
28
|
+
private _patchBeanInstance;
|
|
29
|
+
private _newBeanProxy;
|
|
30
|
+
private _getInstanceMethodProxy;
|
|
31
|
+
private _prepareAopChains;
|
|
32
|
+
private _getAopChains;
|
|
33
|
+
private _getAopChainsProp;
|
|
34
|
+
private __composeForPropAdapter;
|
|
35
|
+
private __composeForProp;
|
|
36
|
+
private __composeForPropAsync;
|
|
37
|
+
}
|
|
38
|
+
export {};
|
|
39
|
+
//# sourceMappingURL=beanContainer.d.ts.map
|
|
@@ -0,0 +1,514 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var _a;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.BeanContainer = void 0;
|
|
5
|
+
const resource_js_1 = require("../core/resource.js");
|
|
6
|
+
const beanBase_js_1 = require("./beanBase.js");
|
|
7
|
+
const beanSimple_js_1 = require("./beanSimple.js");
|
|
8
|
+
const isClass_js_1 = require("../utils/isClass.js");
|
|
9
|
+
const ProxyMagic = Symbol.for('Bean#ProxyMagic');
|
|
10
|
+
const BeanContainerInstances = Symbol.for('Bean#Instances');
|
|
11
|
+
class BeanContainer {
|
|
12
|
+
static create(app, ctx) {
|
|
13
|
+
const beanContainer = new BeanContainer(app, ctx);
|
|
14
|
+
return new Proxy(beanContainer, {
|
|
15
|
+
get(obj, prop) {
|
|
16
|
+
if (typeof prop === 'symbol')
|
|
17
|
+
return obj[prop];
|
|
18
|
+
if (obj[prop])
|
|
19
|
+
return obj[prop];
|
|
20
|
+
return obj._getBean(prop);
|
|
21
|
+
},
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
constructor(app, ctx) {
|
|
25
|
+
Object.defineProperty(this, "app", {
|
|
26
|
+
enumerable: true,
|
|
27
|
+
configurable: true,
|
|
28
|
+
writable: true,
|
|
29
|
+
value: void 0
|
|
30
|
+
});
|
|
31
|
+
Object.defineProperty(this, "ctx", {
|
|
32
|
+
enumerable: true,
|
|
33
|
+
configurable: true,
|
|
34
|
+
writable: true,
|
|
35
|
+
value: void 0
|
|
36
|
+
});
|
|
37
|
+
Object.defineProperty(this, _a, {
|
|
38
|
+
enumerable: true,
|
|
39
|
+
configurable: true,
|
|
40
|
+
writable: true,
|
|
41
|
+
value: {}
|
|
42
|
+
});
|
|
43
|
+
Object.defineProperty(this, "__composeForPropAdapter", {
|
|
44
|
+
enumerable: true,
|
|
45
|
+
configurable: true,
|
|
46
|
+
writable: true,
|
|
47
|
+
value: (_context, chain) => {
|
|
48
|
+
const [aopKey, methodName] = chain;
|
|
49
|
+
// ProxyMagic
|
|
50
|
+
if (aopKey === ProxyMagic)
|
|
51
|
+
return null;
|
|
52
|
+
// chain
|
|
53
|
+
const aop = this._getBean(aopKey);
|
|
54
|
+
if (!aop)
|
|
55
|
+
throw new Error(`aop not found: ${chain}`);
|
|
56
|
+
if (!aop[methodName])
|
|
57
|
+
return null;
|
|
58
|
+
return {
|
|
59
|
+
receiver: aop,
|
|
60
|
+
fn: aop[methodName],
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
this.app = app;
|
|
65
|
+
this.ctx = ctx;
|
|
66
|
+
}
|
|
67
|
+
scope(moduleScope) {
|
|
68
|
+
return this._getBean(`${moduleScope}.scope.module`);
|
|
69
|
+
}
|
|
70
|
+
// _getBean<T>(beanFullName: string): T;
|
|
71
|
+
_getBean(beanFullName) {
|
|
72
|
+
return this._getBeanSelector(beanFullName);
|
|
73
|
+
}
|
|
74
|
+
// _getBeanSelector<T>(beanFullName: string, selector?: string): T;
|
|
75
|
+
_getBeanSelector(beanFullName, selector) {
|
|
76
|
+
// bean options
|
|
77
|
+
const beanOptions = resource_js_1.appResource.getBean(beanFullName);
|
|
78
|
+
if (!beanOptions) {
|
|
79
|
+
// not found
|
|
80
|
+
return null;
|
|
81
|
+
}
|
|
82
|
+
const fullName = beanOptions.beanFullName;
|
|
83
|
+
// same as _getBean if selector is undefined/null/'', as as to get the same bean instance
|
|
84
|
+
// not use !selector which maybe is 0
|
|
85
|
+
const isSelectorValid = !this.app.meta.util.isNullOrEmptyString(selector);
|
|
86
|
+
const key = !isSelectorValid ? fullName : `${fullName}#${selector}`;
|
|
87
|
+
if (this[BeanContainerInstances][key] === undefined) {
|
|
88
|
+
let beanInstance;
|
|
89
|
+
if (isSelectorValid) {
|
|
90
|
+
beanInstance = this._newBean(fullName, selector);
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
beanInstance = this._newBean(fullName);
|
|
94
|
+
}
|
|
95
|
+
this[BeanContainerInstances][key] = beanInstance;
|
|
96
|
+
}
|
|
97
|
+
return this[BeanContainerInstances][key];
|
|
98
|
+
}
|
|
99
|
+
// _newBean<T>(beanFullName: string, ...args): T;
|
|
100
|
+
_newBean(beanFullName, ...args) {
|
|
101
|
+
// bean options
|
|
102
|
+
const beanOptions = resource_js_1.appResource.getBean(beanFullName);
|
|
103
|
+
if (!beanOptions) {
|
|
104
|
+
// class
|
|
105
|
+
if (typeof beanFullName === 'function' && (0, isClass_js_1.isClass)(beanFullName)) {
|
|
106
|
+
const beanInstance = this._createBeanInstance(beanFullName, beanFullName, args);
|
|
107
|
+
return this._patchBeanInstance(beanFullName, beanInstance, false);
|
|
108
|
+
}
|
|
109
|
+
// throw new Error(`bean not found: ${beanFullName}`);
|
|
110
|
+
return null;
|
|
111
|
+
}
|
|
112
|
+
// instance
|
|
113
|
+
const beanInstance = this._createBeanInstance(beanOptions.beanFullName, beanOptions.beanClass, args);
|
|
114
|
+
// patch
|
|
115
|
+
return this._patchBeanInstance(beanOptions.beanFullName, beanInstance, beanOptions.aop);
|
|
116
|
+
}
|
|
117
|
+
// _newBeanSelector<T>(beanFullName: string, selector?: string, ...args): T;
|
|
118
|
+
_newBeanSelector(beanFullName, selector, ...args) {
|
|
119
|
+
return this._newBean(beanFullName, selector, ...args);
|
|
120
|
+
}
|
|
121
|
+
_createBeanInstance(beanFullName, beanClass, args) {
|
|
122
|
+
// create
|
|
123
|
+
let beanInstance;
|
|
124
|
+
if (beanClass.prototype.__init__) {
|
|
125
|
+
beanInstance = new beanClass();
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
beanInstance = new beanClass(...args);
|
|
129
|
+
}
|
|
130
|
+
// app/ctx
|
|
131
|
+
if (beanInstance instanceof beanSimple_js_1.BeanSimple) {
|
|
132
|
+
// app
|
|
133
|
+
beanInstance.app = this.app;
|
|
134
|
+
// ctx: always set even if is null, so as to prevent magic method __get__ take effect.
|
|
135
|
+
beanInstance.ctx = this.ctx;
|
|
136
|
+
}
|
|
137
|
+
// beanFullName
|
|
138
|
+
if (typeof beanFullName === 'string') {
|
|
139
|
+
__setPropertyValue(beanInstance, '__beanFullName__', beanFullName);
|
|
140
|
+
}
|
|
141
|
+
/// / scope
|
|
142
|
+
// this._injectBeanInstanceScope(beanInstance, beanFullName);
|
|
143
|
+
// inject
|
|
144
|
+
this._injectBeanInstance(beanInstance, beanFullName);
|
|
145
|
+
// init
|
|
146
|
+
if (beanInstance.__init__) {
|
|
147
|
+
beanInstance.__init__(...args);
|
|
148
|
+
}
|
|
149
|
+
// ok
|
|
150
|
+
return beanInstance;
|
|
151
|
+
}
|
|
152
|
+
_injectBeanInstance(beanInstance, beanFullName) {
|
|
153
|
+
const beanOptions = resource_js_1.appResource.getBean(beanFullName);
|
|
154
|
+
if (!beanOptions)
|
|
155
|
+
return;
|
|
156
|
+
const uses = resource_js_1.appResource.getUses(beanOptions.beanClass.prototype);
|
|
157
|
+
if (!uses)
|
|
158
|
+
return;
|
|
159
|
+
for (const key in uses) {
|
|
160
|
+
const useOptions = uses[key];
|
|
161
|
+
const selector = useOptions.selector;
|
|
162
|
+
const injectionScope = useOptions.injectionScope;
|
|
163
|
+
this._injectBeanInstancePropLazy(beanInstance, useOptions.prop, useOptions.beanFullName, selector, injectionScope);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
_injectBeanInstancePropLazy(instance, prop, targetBeanFullName, selector, injectionScope) {
|
|
167
|
+
const self = this;
|
|
168
|
+
Object.defineProperty(instance, prop, {
|
|
169
|
+
enumerable: true,
|
|
170
|
+
configurable: true,
|
|
171
|
+
get() {
|
|
172
|
+
const symbol = Symbol.for(`__bean_use__#${prop}`);
|
|
173
|
+
if (!instance[symbol]) {
|
|
174
|
+
instance[symbol] = self._injectBeanInstanceProp(targetBeanFullName, selector, injectionScope);
|
|
175
|
+
}
|
|
176
|
+
return instance[symbol];
|
|
177
|
+
},
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
_injectBeanInstanceProp(targetBeanFullName, selector, injectionScope) {
|
|
181
|
+
// injectionScope
|
|
182
|
+
if (!injectionScope) {
|
|
183
|
+
const targetOptions = resource_js_1.appResource.getBean(targetBeanFullName);
|
|
184
|
+
if (!targetOptions) {
|
|
185
|
+
throw new Error(`not found bean class: ${targetBeanFullName}`);
|
|
186
|
+
}
|
|
187
|
+
injectionScope = targetOptions.containerScope || 'ctx';
|
|
188
|
+
}
|
|
189
|
+
// targetInstance
|
|
190
|
+
let targetInstance;
|
|
191
|
+
// selector maybe empty string
|
|
192
|
+
if (injectionScope === 'app') {
|
|
193
|
+
targetInstance = this.app.bean._getBeanSelector(targetBeanFullName, selector);
|
|
194
|
+
}
|
|
195
|
+
else if (injectionScope === 'ctx') {
|
|
196
|
+
targetInstance = this._getBeanSelector(targetBeanFullName, selector);
|
|
197
|
+
}
|
|
198
|
+
else if (injectionScope === 'new') {
|
|
199
|
+
targetInstance = this._newBean(targetBeanFullName, selector);
|
|
200
|
+
}
|
|
201
|
+
return targetInstance;
|
|
202
|
+
}
|
|
203
|
+
// private _injectBeanInstanceScope(beanInstance, beanFullName) {
|
|
204
|
+
// if (typeof beanFullName !== 'string' || beanFullName.indexOf('.scope.module') > -1) return;
|
|
205
|
+
// Object.defineProperty(beanInstance, 'scope', {
|
|
206
|
+
// enumerable: false,
|
|
207
|
+
// configurable: true,
|
|
208
|
+
// get() {
|
|
209
|
+
// if (!this[BeanInstanceScope]) {
|
|
210
|
+
// this[BeanInstanceScope] = this.bean._getBean(`${this.moduleBelong}.scope.module`);
|
|
211
|
+
// }
|
|
212
|
+
// return this[BeanInstanceScope];
|
|
213
|
+
// },
|
|
214
|
+
// });
|
|
215
|
+
// }
|
|
216
|
+
_patchBeanInstance(beanFullNameOrBeanClass, beanInstance, aop) {
|
|
217
|
+
if (!beanFullNameOrBeanClass)
|
|
218
|
+
return beanInstance;
|
|
219
|
+
// not aop on aop
|
|
220
|
+
if (aop)
|
|
221
|
+
return beanInstance;
|
|
222
|
+
// aop chains
|
|
223
|
+
const _aopChains = this._prepareAopChains(beanFullNameOrBeanClass, beanInstance);
|
|
224
|
+
// no aop
|
|
225
|
+
if (_aopChains.length === 0)
|
|
226
|
+
return beanInstance;
|
|
227
|
+
// aop
|
|
228
|
+
return this._newBeanProxy(beanFullNameOrBeanClass, beanInstance);
|
|
229
|
+
}
|
|
230
|
+
_newBeanProxy(beanFullName, beanInstance) {
|
|
231
|
+
const self = this;
|
|
232
|
+
return new Proxy(beanInstance, {
|
|
233
|
+
get(target, prop, receiver) {
|
|
234
|
+
if (typeof prop === 'symbol') {
|
|
235
|
+
return target[prop];
|
|
236
|
+
}
|
|
237
|
+
if (__isInnerMethod(prop)) {
|
|
238
|
+
return target[prop];
|
|
239
|
+
}
|
|
240
|
+
// descriptorInfo
|
|
241
|
+
const descriptorInfo = __getPropertyDescriptor(target, prop);
|
|
242
|
+
if (!__checkAopOfDescriptorInfo(descriptorInfo))
|
|
243
|
+
return target[prop];
|
|
244
|
+
const methodType = __methodTypeOfDescriptor(descriptorInfo);
|
|
245
|
+
// get prop
|
|
246
|
+
if (!methodType) {
|
|
247
|
+
const methodName = `__get_${prop}__`;
|
|
248
|
+
const methodNameMagic = '__magic_get__';
|
|
249
|
+
const _aopChainsProp = self._getAopChainsProp(beanFullName, methodName, methodNameMagic);
|
|
250
|
+
if (_aopChainsProp.length === 0)
|
|
251
|
+
return target[prop];
|
|
252
|
+
// context
|
|
253
|
+
const context = {
|
|
254
|
+
target,
|
|
255
|
+
receiver,
|
|
256
|
+
prop,
|
|
257
|
+
value: undefined,
|
|
258
|
+
};
|
|
259
|
+
// aop
|
|
260
|
+
self.__composeForProp(_aopChainsProp)(context, (context, next) => {
|
|
261
|
+
if (context.value === undefined) {
|
|
262
|
+
if (!descriptorInfo && target.__get__) {
|
|
263
|
+
context.value = target.__get__(prop);
|
|
264
|
+
}
|
|
265
|
+
else {
|
|
266
|
+
context.value = target[prop];
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
next();
|
|
270
|
+
});
|
|
271
|
+
// ok
|
|
272
|
+
return context.value;
|
|
273
|
+
}
|
|
274
|
+
// method
|
|
275
|
+
return self._getInstanceMethodProxy(beanFullName, target, prop, methodType);
|
|
276
|
+
},
|
|
277
|
+
set(target, prop, value, receiver) {
|
|
278
|
+
if (typeof prop === 'symbol') {
|
|
279
|
+
target[prop] = value;
|
|
280
|
+
return true;
|
|
281
|
+
}
|
|
282
|
+
if (__isInnerMethod(prop)) {
|
|
283
|
+
target[prop] = value;
|
|
284
|
+
return true;
|
|
285
|
+
}
|
|
286
|
+
// descriptorInfo
|
|
287
|
+
const descriptorInfo = __getPropertyDescriptor(target, prop);
|
|
288
|
+
if (!__checkAopOfDescriptorInfo(descriptorInfo)) {
|
|
289
|
+
target[prop] = value;
|
|
290
|
+
return true;
|
|
291
|
+
}
|
|
292
|
+
const methodName = `__set_${prop}__`;
|
|
293
|
+
const methodNameMagic = '__magic_set__';
|
|
294
|
+
const _aopChainsProp = self._getAopChainsProp(beanFullName, methodName, methodNameMagic);
|
|
295
|
+
if (_aopChainsProp.length === 0) {
|
|
296
|
+
target[prop] = value;
|
|
297
|
+
return true;
|
|
298
|
+
}
|
|
299
|
+
// context
|
|
300
|
+
const context = {
|
|
301
|
+
target,
|
|
302
|
+
receiver,
|
|
303
|
+
prop,
|
|
304
|
+
value,
|
|
305
|
+
};
|
|
306
|
+
// aop
|
|
307
|
+
self.__composeForProp(_aopChainsProp)(context, (context, next) => {
|
|
308
|
+
if (!descriptorInfo && target.__set__) {
|
|
309
|
+
const res = target.__set__(prop, context.value);
|
|
310
|
+
if (res === undefined)
|
|
311
|
+
throw new Error('__set__ must return true/false');
|
|
312
|
+
if (!res) {
|
|
313
|
+
target[prop] = context.value;
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
else {
|
|
317
|
+
target[prop] = context.value;
|
|
318
|
+
}
|
|
319
|
+
next();
|
|
320
|
+
});
|
|
321
|
+
// ok
|
|
322
|
+
return true;
|
|
323
|
+
},
|
|
324
|
+
});
|
|
325
|
+
}
|
|
326
|
+
_getInstanceMethodProxy(beanFullName, beanInstance, prop, methodType) {
|
|
327
|
+
const self = this;
|
|
328
|
+
// not aop magic methods
|
|
329
|
+
if (__isInnerMethod(prop)) {
|
|
330
|
+
return beanInstance[prop];
|
|
331
|
+
}
|
|
332
|
+
// aop chains
|
|
333
|
+
const _aopChainsProp = this._getAopChainsProp(beanFullName, prop, null);
|
|
334
|
+
if (_aopChainsProp.length === 0)
|
|
335
|
+
return beanInstance[prop];
|
|
336
|
+
// proxy
|
|
337
|
+
const methodProxyKey = `__aopproxy_method_${prop}__`;
|
|
338
|
+
if (beanInstance[methodProxyKey])
|
|
339
|
+
return beanInstance[methodProxyKey];
|
|
340
|
+
const methodProxy = new Proxy(beanInstance[prop], {
|
|
341
|
+
apply(target, thisArg, args) {
|
|
342
|
+
// context
|
|
343
|
+
const context = {
|
|
344
|
+
target: beanInstance,
|
|
345
|
+
receiver: thisArg,
|
|
346
|
+
prop,
|
|
347
|
+
arguments: args,
|
|
348
|
+
result: undefined,
|
|
349
|
+
};
|
|
350
|
+
// aop
|
|
351
|
+
if (methodType === 'Function') {
|
|
352
|
+
self.__composeForProp(_aopChainsProp)(context, (context, next) => {
|
|
353
|
+
if (context.result === undefined) {
|
|
354
|
+
context.result = target.apply(thisArg, args);
|
|
355
|
+
}
|
|
356
|
+
next();
|
|
357
|
+
});
|
|
358
|
+
// ok
|
|
359
|
+
return context.result;
|
|
360
|
+
}
|
|
361
|
+
if (methodType === 'AsyncFunction') {
|
|
362
|
+
return new Promise((resolve, reject) => {
|
|
363
|
+
self
|
|
364
|
+
.__composeForPropAsync(_aopChainsProp)(context, async (context, next) => {
|
|
365
|
+
if (context.result === undefined) {
|
|
366
|
+
context.result = await target.apply(thisArg, args);
|
|
367
|
+
}
|
|
368
|
+
await next();
|
|
369
|
+
})
|
|
370
|
+
.then(() => {
|
|
371
|
+
resolve(context.result);
|
|
372
|
+
})
|
|
373
|
+
.catch(err => {
|
|
374
|
+
reject(err);
|
|
375
|
+
});
|
|
376
|
+
});
|
|
377
|
+
}
|
|
378
|
+
},
|
|
379
|
+
});
|
|
380
|
+
__setPropertyValue(beanInstance, methodProxyKey, methodProxy);
|
|
381
|
+
return methodProxy;
|
|
382
|
+
}
|
|
383
|
+
_prepareAopChains(beanFullNameOrBeanClass, beanInstance) {
|
|
384
|
+
if (!beanFullNameOrBeanClass)
|
|
385
|
+
return [];
|
|
386
|
+
// beanFullName maybe class
|
|
387
|
+
const beanOptions = resource_js_1.appResource.getBean(beanFullNameOrBeanClass);
|
|
388
|
+
const host = beanOptions || beanFullNameOrBeanClass;
|
|
389
|
+
if (host.__aopChains__)
|
|
390
|
+
return host.__aopChains__;
|
|
391
|
+
// chains
|
|
392
|
+
let chains = [];
|
|
393
|
+
if (beanOptions && !beanOptions.aop) {
|
|
394
|
+
const aops = resource_js_1.appResource.findAopsMatched(beanOptions.beanFullName);
|
|
395
|
+
if (aops) {
|
|
396
|
+
chains = chains.concat(aops);
|
|
397
|
+
}
|
|
398
|
+
}
|
|
399
|
+
// magic self
|
|
400
|
+
if (__hasMagicMothod(beanInstance)) {
|
|
401
|
+
chains.push(ProxyMagic);
|
|
402
|
+
}
|
|
403
|
+
// hold
|
|
404
|
+
host.__aopChains__ = chains;
|
|
405
|
+
return chains;
|
|
406
|
+
}
|
|
407
|
+
_getAopChains(beanFullName) {
|
|
408
|
+
// beanFullName maybe class
|
|
409
|
+
const beanOptions = resource_js_1.appResource.getBean(beanFullName);
|
|
410
|
+
const host = beanOptions || beanFullName;
|
|
411
|
+
return host.__aopChains__;
|
|
412
|
+
}
|
|
413
|
+
_getAopChainsProp(beanFullName, methodName, methodNameMagic) {
|
|
414
|
+
const chainsKey = `__aopChains_${methodName}__`;
|
|
415
|
+
const beanOptions = resource_js_1.appResource.getBean(beanFullName);
|
|
416
|
+
const host = beanOptions || beanFullName;
|
|
417
|
+
if (!host.__aopChainsKey__)
|
|
418
|
+
host.__aopChainsKey__ = {};
|
|
419
|
+
if (host.__aopChainsKey__[chainsKey])
|
|
420
|
+
return host.__aopChainsKey__[chainsKey];
|
|
421
|
+
const _aopChains = this._getAopChains(beanFullName);
|
|
422
|
+
const chains = [];
|
|
423
|
+
for (const aopKey of _aopChains) {
|
|
424
|
+
if (aopKey === ProxyMagic) {
|
|
425
|
+
chains.push([aopKey, methodName]);
|
|
426
|
+
}
|
|
427
|
+
else {
|
|
428
|
+
const aop = this._getBean(aopKey);
|
|
429
|
+
if (aop[methodName]) {
|
|
430
|
+
chains.push([aopKey, methodName]);
|
|
431
|
+
}
|
|
432
|
+
else if (methodNameMagic && aop[methodNameMagic]) {
|
|
433
|
+
chains.push([aopKey, methodNameMagic]);
|
|
434
|
+
}
|
|
435
|
+
}
|
|
436
|
+
}
|
|
437
|
+
host.__aopChainsKey__[chainsKey] = chains;
|
|
438
|
+
return chains;
|
|
439
|
+
}
|
|
440
|
+
__composeForProp(chains) {
|
|
441
|
+
return this.app.meta.util.compose(chains, this.__composeForPropAdapter);
|
|
442
|
+
}
|
|
443
|
+
__composeForPropAsync(chains) {
|
|
444
|
+
return this.app.meta.util.composeAsync(chains, this.__composeForPropAdapter);
|
|
445
|
+
}
|
|
446
|
+
}
|
|
447
|
+
exports.BeanContainer = BeanContainer;
|
|
448
|
+
_a = BeanContainerInstances;
|
|
449
|
+
function __checkAopOfDescriptorInfo(descriptorInfo) {
|
|
450
|
+
if (!descriptorInfo)
|
|
451
|
+
return true;
|
|
452
|
+
return !descriptorInfo.dynamic && !descriptorInfo.ofBeanBase;
|
|
453
|
+
}
|
|
454
|
+
function __getPropertyDescriptor(obj, prop) {
|
|
455
|
+
// dynamic
|
|
456
|
+
const descriptor = Object.getOwnPropertyDescriptor(obj, prop);
|
|
457
|
+
if (descriptor)
|
|
458
|
+
return { descriptor, dynamic: true };
|
|
459
|
+
// static
|
|
460
|
+
return __getPropertyDescriptorStatic(obj, prop);
|
|
461
|
+
}
|
|
462
|
+
function __getPropertyDescriptorStatic(obj, prop) {
|
|
463
|
+
let proto = Object.getPrototypeOf(obj);
|
|
464
|
+
let ofBeanBase = false;
|
|
465
|
+
while (proto) {
|
|
466
|
+
if (proto.constructor.name === beanBase_js_1.BeanBase.name) {
|
|
467
|
+
ofBeanBase = true;
|
|
468
|
+
}
|
|
469
|
+
const descriptor = Object.getOwnPropertyDescriptor(proto, prop);
|
|
470
|
+
if (descriptor)
|
|
471
|
+
return { descriptor, dynamic: false, ofBeanBase };
|
|
472
|
+
proto = Object.getPrototypeOf(proto);
|
|
473
|
+
}
|
|
474
|
+
return null;
|
|
475
|
+
}
|
|
476
|
+
function __setPropertyValue(obj, prop, value) {
|
|
477
|
+
Object.defineProperty(obj, prop, {
|
|
478
|
+
enumerable: false,
|
|
479
|
+
configurable: true,
|
|
480
|
+
get() {
|
|
481
|
+
return value;
|
|
482
|
+
},
|
|
483
|
+
});
|
|
484
|
+
}
|
|
485
|
+
function __hasMagicMothod(instance) {
|
|
486
|
+
return !!instance.__get__ || !!instance.__set__;
|
|
487
|
+
}
|
|
488
|
+
function __isInnerMethod(prop) {
|
|
489
|
+
return [
|
|
490
|
+
'__get__',
|
|
491
|
+
'__set__',
|
|
492
|
+
'__init__',
|
|
493
|
+
'__dispose__',
|
|
494
|
+
'then',
|
|
495
|
+
'__v_isShallow',
|
|
496
|
+
'__v_isReadonly',
|
|
497
|
+
'__v_raw',
|
|
498
|
+
].includes(prop);
|
|
499
|
+
}
|
|
500
|
+
function __methodTypeOfDescriptor(descriptorInfo) {
|
|
501
|
+
if (!descriptorInfo)
|
|
502
|
+
return null;
|
|
503
|
+
const { descriptor, dynamic } = descriptorInfo;
|
|
504
|
+
if (dynamic)
|
|
505
|
+
return null;
|
|
506
|
+
if (descriptor.get)
|
|
507
|
+
return null;
|
|
508
|
+
const methodType = descriptor.value?.constructor?.name;
|
|
509
|
+
if (['Function', 'AsyncFunction'].includes(methodType)) {
|
|
510
|
+
return methodType;
|
|
511
|
+
}
|
|
512
|
+
return null;
|
|
513
|
+
}
|
|
514
|
+
//# sourceMappingURL=beanContainer.js.map
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BeanLocal = void 0;
|
|
4
|
+
const beanModuleScopeBase_js_1 = require("./beanModuleScopeBase.js");
|
|
5
|
+
class BeanLocal extends beanModuleScopeBase_js_1.BeanModuleScopeBase {
|
|
6
|
+
// magic
|
|
7
|
+
__get__(prop) {
|
|
8
|
+
return this.bean._getBean(`${this.moduleScope}.local.${prop}`);
|
|
9
|
+
}
|
|
10
|
+
// beanLocal has no __beanFullName__
|
|
11
|
+
module(moduleScope) {
|
|
12
|
+
return this.bean._newBeanScope(BeanLocal, moduleScope);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
exports.BeanLocal = BeanLocal;
|
|
16
|
+
//# sourceMappingURL=beanLocal.js.map
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { BeanBase } from './beanBase.js';
|
|
2
|
+
declare const BeanModuleScope: unique symbol;
|
|
3
|
+
export declare class BeanModuleScopeBase<T = unknown> extends BeanBase<T> {
|
|
4
|
+
private [BeanModuleScope]?;
|
|
5
|
+
constructor(moduleScope?: string);
|
|
6
|
+
protected get moduleScope(): string;
|
|
7
|
+
module(moduleScope: string): typeof this;
|
|
8
|
+
}
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=beanModuleScopeBase.d.ts.map
|