vona-module-a-executor 5.0.29 → 5.1.1
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 +0 -0
- package/dist/.metadata/index.d.ts +1 -0
- package/dist/.metadata/index.d.ts.map +1 -0
- package/dist/.metadata/this.d.ts +1 -0
- package/dist/.metadata/this.d.ts.map +1 -0
- package/dist/bean/bean.executor.d.ts +2 -1
- package/dist/bean/bean.executor.d.ts.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/utils.d.ts +1 -0
- package/dist/lib/utils.d.ts.map +1 -0
- package/dist/service/executor.d.ts +2 -1
- package/dist/service/executor.d.ts.map +1 -0
- package/dist/types/executor.d.ts +1 -0
- package/dist/types/executor.d.ts.map +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -0
- package/package.json +21 -16
- package/src/.metadata/index.ts +96 -0
- package/src/.metadata/this.ts +2 -0
- package/src/bean/bean.executor.ts +137 -0
- package/src/index.ts +2 -0
- package/src/lib/utils.ts +45 -0
- package/src/service/executor.ts +120 -0
- package/src/types/executor.ts +50 -0
- package/src/types/index.ts +1 -0
package/LICENSE
CHANGED
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/.metadata/index.ts"],"names":[],"mappings":"AACA,kBAAkB;AAClB,cAAc,0BAA0B,CAAC;AAEzC,OAAO,MAAM,CAAC;AACd,OAAO,QAAQ,MAAM,CAAC;CAGrB;AACD,OAAO,QAAQ,wBAAwB,CAAC;IAEhC,UAAiB,YAAY;KAG5B;CACR;AACD,gBAAgB;AAChB,kBAAkB;AAClB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,MAAM,CAAC;AACd,OAAO,QAAQ,MAAM,CAAC;IACpB,UAAiB,iBAAiB;QAChC,UAAU,EAAE,YAAY,CAAC;KAC1B;CACF;AACD,gBAAgB;AAChB,qBAAqB;AACrB,cAAc,wBAAwB,CAAC;AAEvC,OAAO,oBAAoB,CAAC;AAC5B,OAAO,QAAQ,oBAAoB,CAAC;IAEhC,UAAiB,cAAc;QAC7B,qBAAqB,EAAE,KAAK,CAAC;KAC9B;CAGJ;AACD,OAAO,QAAQ,wBAAwB,CAAC;IAEhC,UAAiB,eAAe;KAG/B;IAEC,UAAiB,eAAe;QAC9B,IAAI,aAAa,IAAI,6BAA6B,CAAC;QACnD,IAAI,UAAU,IAAI,qBAAqB,CAAC;KAEzC;CACV;AACD,mBAAmB;AACnB,qBAAqB;AACrB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,eAAe,CAAC;CAC7B;AACD,mBAAmB;AACnB,qBAAqB;AAErB,OAAO,MAAM,CAAC;AACd,OAAO,QAAQ,MAAM,CAAC;IACpB,UAAiB,kBAAkB;QACjC,6BAA6B,EAAE,eAAe,CAAC;KAChD;CACF;AACD,mBAAmB;AACnB,mBAAmB;AACnB,OAAO,EAAE,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,MAAM,CAAC;AAGzD,qBACa,oBAAqB,SAAQ,aAAa;CAAG;AAE1D,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,aAAa,CAAC;IACtB,OAAO,EAAE,cAAc,CAAC;CACvB;AAED,OAAO,MAAM,CAAC;AACd,OAAO,QAAQ,MAAM,CAAC;IACpB,UAAiB,gBAAgB;QAC/B,YAAY,EAAE,oBAAoB,CAAC;KACpC;IAED,UAAiB,mBAAmB;QAClC,QAAQ,EAAE,oBAAoB,CAAC;KAChC;CAOF;AACD,iBAAiB"}
|
package/dist/.metadata/this.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"this.d.ts","sourceRoot":"","sources":["../../src/.metadata/this.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,eAAe,CAAC;AAC3C,OAAO,EAAE,oBAAoB,IAAI,WAAW,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { FunctionAsync } from 'vona';
|
|
2
2
|
import type { IApiPathRecordMethodMap } from 'vona-module-a-web';
|
|
3
|
-
import type { INewCtxOptions, IPerformActionOptions } from '../types/executor.ts';
|
|
4
3
|
import { BeanBase } from 'vona';
|
|
4
|
+
import type { INewCtxOptions, IPerformActionOptions } from '../types/executor.ts';
|
|
5
5
|
export declare class BeanExecutor extends BeanBase {
|
|
6
6
|
performAction<METHOD extends keyof IApiPathRecordMethodMap, PATH extends keyof IApiPathRecordMethodMap[METHOD]>(method: METHOD, path: PATH, options?: IPerformActionOptions): Promise<any>;
|
|
7
7
|
runInBackground(fn: FunctionAsync<void>): Promise<void>;
|
|
@@ -11,3 +11,4 @@ export declare class BeanExecutor extends BeanBase {
|
|
|
11
11
|
private _newCtxInnerStep1;
|
|
12
12
|
private _newCtxInnerStep2;
|
|
13
13
|
}
|
|
14
|
+
//# sourceMappingURL=bean.executor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bean.executor.d.ts","sourceRoot":"","sources":["../../src/bean/bean.executor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAGjE,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAGhC,OAAO,KAAK,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAIlF,qBACa,YAAa,SAAQ,QAAQ;IAClC,aAAa,CAAC,MAAM,SAAS,MAAM,uBAAuB,EAAE,IAAI,SAAS,MAAM,uBAAuB,CAAC,MAAM,CAAC,EAClH,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,IAAI,EACV,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,GAAG,CAAC;IAMf,eAAe,CAAC,EAAE,EAAE,aAAa,CAAC,IAAI,CAAC;IAMjC,aAAa,CAAC,MAAM,EAAE,EAAE,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;IAW3F,OAAO,CAAC,MAAM,EAAE,EAAE,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;IAQrF,MAAM,CAAC,MAAM,EAAE,EAAE,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;YAS5E,iBAAiB;YAoDjB,iBAAiB;CA2BhC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -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
|
@@ -62,6 +62,10 @@ let BeanExecutor = class BeanExecutor extends BeanBase {
|
|
|
62
62
|
options = Object.assign({}, options);
|
|
63
63
|
// instanceName !== undefined means isolate
|
|
64
64
|
options.instanceName = options.instanceName === undefined ? this.ctx?.instanceName : options.instanceName;
|
|
65
|
+
if (options.instanceName === this.ctx?.instanceName) {
|
|
66
|
+
options.locale = options.locale === undefined ? this.ctx?.locale : options.locale;
|
|
67
|
+
options.tz = options.tz === undefined ? this.ctx?.tz : options.tz;
|
|
68
|
+
}
|
|
65
69
|
return this.newCtx(fn, options);
|
|
66
70
|
}
|
|
67
71
|
async mockCtx(fn, options) {
|
|
@@ -293,3 +297,4 @@ ScopeModuleAExecutor = __decorate([Scope(), BeanInfo({
|
|
|
293
297
|
/** scope: end */
|
|
294
298
|
|
|
295
299
|
export { BeanExecutor, ScopeModuleAExecutor, ServiceExecutor, SymbolRouterMiddleware };
|
|
300
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/lib/utils.ts","../src/bean/bean.executor.ts","../src/types/executor.ts","../src/service/executor.ts","../src/.metadata/index.ts"],"sourcesContent":[null,null,null,null,null],"names":["__delegateProperties","ctx","ctxCaller","property","__delegateProperty","request","BeanExecutor","BeanBase","performAction","method","path","options","url","app","util","combineApiPath","scope","service","executor","performActionInner","runInBackground","fn","bean","database","switchDbIsolate","newCtx","newCtxIsolate","Object","assign","instanceName","undefined","locale","tz","mockCtx","dbInfo","isNil","level","instance","_newCtxInnerStep1","_newCtxInnerStep2","switchDb","innerAccess","isolate","createAnonymousContext","req","res","ctxStorage","run","extraData","meta","appReady","Error","get","$scope","checkAppReadyInstance","transaction","current","begin","transactionOptions","commitsDone","__decorate","Bean","__z_BeanInfo","module","SymbolRouterMiddleware","Symbol","ServiceExecutor","statusCode","toUpperCase","combineParamsAndQuery","params","query","headers","accept","authToken","authorization","cast","body","onionsDynamic","onions","status","code","data","createError","message","prepareGeneralInfo","clientName","deepExtend","key","startsWith","value","Aspect","aopMethod","__metadata","_a","METHOD","String","prototype","Service","ScopeModuleAExecutor","BeanScopeBase","Scope"],"mappings":"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"}
|
package/dist/lib/utils.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/lib/utils.ts"],"names":[],"mappings":"AAAA,wBAAgB,oBAAoB,CAAC,GAAG,KAAA,EAAE,SAAS,KAAA,QAQlD;AAED,wBAAgB,kBAAkB,CAAC,GAAG,KAAA,EAAE,SAAS,KAAA,EAAE,QAAQ,KAAA,QAG1D"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import type { IApiPathRecordMethodMap } from 'vona-module-a-web';
|
|
2
|
-
import type { IGeneralInfoOptions, IPerformActionOptions } from '../types/executor.ts';
|
|
3
2
|
import { BeanBase } from 'vona';
|
|
3
|
+
import type { IGeneralInfoOptions, IPerformActionOptions } from '../types/executor.ts';
|
|
4
4
|
export declare class ServiceExecutor extends BeanBase {
|
|
5
5
|
performActionInner<METHOD extends keyof IApiPathRecordMethodMap>(method: METHOD, url: string, options?: IPerformActionOptions): Promise<any>;
|
|
6
6
|
prepareGeneralInfo(options?: IGeneralInfoOptions): IGeneralInfoOptions;
|
|
7
7
|
}
|
|
8
|
+
//# sourceMappingURL=executor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../src/service/executor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAGjE,OAAO,EAAE,QAAQ,EAAoB,MAAM,MAAM,CAAC;AAIlD,OAAO,KAAK,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAIvF,qBACa,eAAgB,SAAQ,QAAQ;IAErC,kBAAkB,CAAC,MAAM,SAAS,MAAM,uBAAuB,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,GAAG,CAAC;IAyDlJ,kBAAkB,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,mBAAmB;CA4BvE"}
|
package/dist/types/executor.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../src/types/executor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AACvF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAEtE,eAAO,MAAM,sBAAsB,eAAmC,CAAC;AAEvE,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,OAAO,CAAC,EAAE;QACR,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAClC,CAAC;CACH;AAED,MAAM,WAAW,cAAe,SAAQ,kBAAkB;IACxD,MAAM,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;CAC3B;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,MAAM,aAAa,CAAC;IAC7B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,eAAe,GAAG,SAAS,GAAG,IAAI,CAAC;IACxD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,kBAAkB,CAAC,EAAE,mBAAmB,CAAC;IACzC,SAAS,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;IACzC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,GAAG,CAAC,EAAE,GAAG,CAAC;IACV,GAAG,CAAC,EAAE,GAAG,CAAC;CACX;AAID,MAAM,WAAW,qBAAqB;IACpC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,MAAM,CAAC,EAAE,YAAY,CAAC,YAAY,CAAC,CAAC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;CAC1C;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,aAAa,CAAC;IAC7B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,eAAe,GAAG,SAAS,GAAG,IAAI,CAAC;IACxD,SAAS,CAAC,EAAE,gBAAgB,CAAC;CAC9B"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vona-module-a-executor",
|
|
3
|
-
"
|
|
4
|
-
"version": "5.0.29",
|
|
5
|
-
"title": "a-executor",
|
|
6
|
-
"vonaModule": {
|
|
7
|
-
"dependencies": {}
|
|
8
|
-
},
|
|
3
|
+
"version": "5.1.1",
|
|
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,10 +22,13 @@
|
|
|
21
22
|
},
|
|
22
23
|
"./package.json": "./package.json"
|
|
23
24
|
},
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
"
|
|
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
|
"dependencies": {
|
|
29
33
|
"koa-compose": "^4.1.0"
|
|
30
34
|
},
|
|
@@ -32,8 +36,9 @@
|
|
|
32
36
|
"clean-package": "^2.2.0",
|
|
33
37
|
"rimraf": "^6.0.1"
|
|
34
38
|
},
|
|
35
|
-
"
|
|
36
|
-
|
|
37
|
-
"
|
|
38
|
-
}
|
|
39
|
-
|
|
39
|
+
"title": "a-executor",
|
|
40
|
+
"vonaModule": {
|
|
41
|
+
"dependencies": {}
|
|
42
|
+
},
|
|
43
|
+
"gitHead": "991189da4443b789fcf77872990b901ccf43bccb"
|
|
44
|
+
}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
// eslint-disable
|
|
2
|
+
/** bean: begin */
|
|
3
|
+
export * from '../bean/bean.executor.ts';
|
|
4
|
+
|
|
5
|
+
import 'vona';
|
|
6
|
+
declare module 'vona' {
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
}
|
|
10
|
+
declare module 'vona-module-a-executor' {
|
|
11
|
+
|
|
12
|
+
export interface BeanExecutor {
|
|
13
|
+
/** @internal */
|
|
14
|
+
get scope(): ScopeModuleAExecutor;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
/** bean: end */
|
|
18
|
+
/** bean: begin */
|
|
19
|
+
import type { BeanExecutor } from '../bean/bean.executor.ts';
|
|
20
|
+
import 'vona';
|
|
21
|
+
declare module 'vona' {
|
|
22
|
+
export interface IBeanRecordGlobal {
|
|
23
|
+
'executor': BeanExecutor;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
/** bean: end */
|
|
27
|
+
/** service: begin */
|
|
28
|
+
export * from '../service/executor.ts';
|
|
29
|
+
|
|
30
|
+
import 'vona-module-a-bean';
|
|
31
|
+
declare module 'vona-module-a-bean' {
|
|
32
|
+
|
|
33
|
+
export interface IServiceRecord {
|
|
34
|
+
'a-executor:executor': never;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
}
|
|
39
|
+
declare module 'vona-module-a-executor' {
|
|
40
|
+
|
|
41
|
+
export interface ServiceExecutor {
|
|
42
|
+
/** @internal */
|
|
43
|
+
get scope(): ScopeModuleAExecutor;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
export interface ServiceExecutor {
|
|
47
|
+
get $beanFullName(): 'a-executor.service.executor';
|
|
48
|
+
get $onionName(): 'a-executor:executor';
|
|
49
|
+
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
/** service: end */
|
|
53
|
+
/** service: begin */
|
|
54
|
+
import type { ServiceExecutor } from '../service/executor.ts';
|
|
55
|
+
export interface IModuleService {
|
|
56
|
+
'executor': ServiceExecutor;
|
|
57
|
+
}
|
|
58
|
+
/** service: end */
|
|
59
|
+
/** service: begin */
|
|
60
|
+
|
|
61
|
+
import 'vona';
|
|
62
|
+
declare module 'vona' {
|
|
63
|
+
export interface IBeanRecordGeneral {
|
|
64
|
+
'a-executor.service.executor': ServiceExecutor;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
/** service: end */
|
|
68
|
+
/** scope: begin */
|
|
69
|
+
import { BeanScopeBase, type BeanScopeUtil } from 'vona';
|
|
70
|
+
import { Scope } from 'vona-module-a-bean';
|
|
71
|
+
|
|
72
|
+
@Scope()
|
|
73
|
+
export class ScopeModuleAExecutor extends BeanScopeBase {}
|
|
74
|
+
|
|
75
|
+
export interface ScopeModuleAExecutor {
|
|
76
|
+
util: BeanScopeUtil;
|
|
77
|
+
service: IModuleService;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
import 'vona';
|
|
81
|
+
declare module 'vona' {
|
|
82
|
+
export interface IBeanScopeRecord {
|
|
83
|
+
'a-executor': ScopeModuleAExecutor;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
export interface IBeanScopeContainer {
|
|
87
|
+
executor: ScopeModuleAExecutor;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
}
|
|
96
|
+
/** scope: end */
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import type { FunctionAsync } from 'vona';
|
|
2
|
+
import type { IApiPathRecordMethodMap } from 'vona-module-a-web';
|
|
3
|
+
|
|
4
|
+
import { isNil } from '@cabloy/utils';
|
|
5
|
+
import { BeanBase } from 'vona';
|
|
6
|
+
import { Bean } from 'vona-module-a-bean';
|
|
7
|
+
|
|
8
|
+
import type { INewCtxOptions, IPerformActionOptions } from '../types/executor.ts';
|
|
9
|
+
|
|
10
|
+
import { __delegateProperties } from '../lib/utils.ts';
|
|
11
|
+
|
|
12
|
+
@Bean()
|
|
13
|
+
export class BeanExecutor extends BeanBase {
|
|
14
|
+
async performAction<METHOD extends keyof IApiPathRecordMethodMap, PATH extends keyof IApiPathRecordMethodMap[METHOD]>(
|
|
15
|
+
method: METHOD,
|
|
16
|
+
path: PATH,
|
|
17
|
+
options?: IPerformActionOptions,
|
|
18
|
+
): Promise<any> {
|
|
19
|
+
// url
|
|
20
|
+
const url = this.app.util.combineApiPath(path as any, '', true, true);
|
|
21
|
+
return await this.scope.service.executor.performActionInner(method, url, options);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
runInBackground(fn: FunctionAsync<void>) {
|
|
25
|
+
return this.bean.database.switchDbIsolate(() => {
|
|
26
|
+
return this.newCtx(fn);
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
async newCtxIsolate<RESULT>(fn: FunctionAsync<RESULT>, options?: INewCtxOptions): Promise<RESULT> {
|
|
31
|
+
options = Object.assign({}, options);
|
|
32
|
+
// instanceName !== undefined means isolate
|
|
33
|
+
options.instanceName = options.instanceName === undefined ? this.ctx?.instanceName : options.instanceName;
|
|
34
|
+
if (options.instanceName === this.ctx?.instanceName) {
|
|
35
|
+
options.locale = options.locale === undefined ? this.ctx?.locale : options.locale;
|
|
36
|
+
options.tz = options.tz === undefined ? this.ctx?.tz : options.tz;
|
|
37
|
+
}
|
|
38
|
+
return this.newCtx(fn, options);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
async mockCtx<RESULT>(fn: FunctionAsync<RESULT>, options?: INewCtxOptions): Promise<RESULT> {
|
|
42
|
+
options = Object.assign({}, options);
|
|
43
|
+
options.dbInfo = isNil(options.dbInfo) ? { level: 1 } : options.dbInfo;
|
|
44
|
+
options.instanceName = options.instanceName === undefined ? (this.ctx?.instanceName ?? '') : options.instanceName;
|
|
45
|
+
options.instance = !isNil(options.instanceName);
|
|
46
|
+
return this.newCtx(fn, options);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
async newCtx<RESULT>(fn: FunctionAsync<RESULT>, options?: INewCtxOptions): Promise<RESULT> {
|
|
50
|
+
return this._newCtxInnerStep1(() => {
|
|
51
|
+
if (isNil(options?.dbInfo)) return this._newCtxInnerStep2(fn, options);
|
|
52
|
+
return this.bean.database.switchDb(() => {
|
|
53
|
+
return this._newCtxInnerStep2(fn, options);
|
|
54
|
+
}, options?.dbInfo);
|
|
55
|
+
}, options);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
private async _newCtxInnerStep1<RESULT>(fn: FunctionAsync<RESULT>, options?: INewCtxOptions): Promise<RESULT> {
|
|
59
|
+
options = Object.assign({}, options);
|
|
60
|
+
// innerAccess
|
|
61
|
+
const innerAccess = options.innerAccess !== false;
|
|
62
|
+
// isolate
|
|
63
|
+
const isolate = !this.ctx || options.instanceName !== undefined || (!innerAccess && this.ctx?.instanceName === null);
|
|
64
|
+
const ctxCaller = !isolate && this.ctx ? this.ctx : undefined;
|
|
65
|
+
// locale/tz/instanceName
|
|
66
|
+
if (!isolate && this.ctx) {
|
|
67
|
+
options.locale = options.locale === undefined ? this.ctx.locale : options.locale;
|
|
68
|
+
options.tz = options.tz === undefined ? this.ctx.tz : options.tz;
|
|
69
|
+
options.instanceName =
|
|
70
|
+
options.instanceName === undefined
|
|
71
|
+
? !innerAccess && this.ctx.instanceName === null
|
|
72
|
+
? undefined
|
|
73
|
+
: this.ctx.instanceName
|
|
74
|
+
: options.instanceName;
|
|
75
|
+
}
|
|
76
|
+
// run
|
|
77
|
+
const ctx = this.app.createAnonymousContext(options.req, options.res);
|
|
78
|
+
return await this.app.ctxStorage.run(ctx, async () => {
|
|
79
|
+
// innerAccess
|
|
80
|
+
ctx.innerAccess = innerAccess;
|
|
81
|
+
// locale
|
|
82
|
+
if (options.locale !== undefined) {
|
|
83
|
+
ctx.locale = options.locale;
|
|
84
|
+
}
|
|
85
|
+
// tz
|
|
86
|
+
if (options.tz !== undefined) {
|
|
87
|
+
ctx.tz = options.tz;
|
|
88
|
+
}
|
|
89
|
+
// instanceName: undefined/null is different
|
|
90
|
+
if (options.instanceName !== undefined) {
|
|
91
|
+
ctx.instanceName = options.instanceName;
|
|
92
|
+
}
|
|
93
|
+
// ctxCaller
|
|
94
|
+
if (ctxCaller) {
|
|
95
|
+
// delegateProperties
|
|
96
|
+
__delegateProperties(ctx, ctxCaller);
|
|
97
|
+
// ctxCaller
|
|
98
|
+
ctx.ctxCaller = ctxCaller;
|
|
99
|
+
} else {
|
|
100
|
+
// isolate: extraData
|
|
101
|
+
if (options.extraData) {
|
|
102
|
+
// delegateProperties
|
|
103
|
+
__delegateProperties(ctx, options.extraData);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
return await fn();
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
private async _newCtxInnerStep2<RESULT>(fn: FunctionAsync<RESULT>, options?: INewCtxOptions): Promise<RESULT> {
|
|
111
|
+
// instance
|
|
112
|
+
const instanceName = this.ctx.instanceName; // use default instanceName when undefined
|
|
113
|
+
if (instanceName !== undefined && instanceName !== null) {
|
|
114
|
+
if (!this.app.meta.appReady) {
|
|
115
|
+
throw new Error(`should not init ctx.instance: ${instanceName}, when app.meta.appReady not true`);
|
|
116
|
+
}
|
|
117
|
+
this.ctx.instance = (await this.bean.instance.get(instanceName))!;
|
|
118
|
+
// start instance
|
|
119
|
+
if (options?.instance) {
|
|
120
|
+
await this.$scope.instance.service.instance.checkAppReadyInstance(true);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
// execute
|
|
124
|
+
let res: RESULT;
|
|
125
|
+
if (options?.transaction) {
|
|
126
|
+
res = await this.bean.database.current.transaction.begin(async () => {
|
|
127
|
+
return await fn();
|
|
128
|
+
}, options?.transactionOptions);
|
|
129
|
+
} else {
|
|
130
|
+
res = await fn();
|
|
131
|
+
}
|
|
132
|
+
// commitsDone
|
|
133
|
+
await this.ctx.commitsDone();
|
|
134
|
+
// ok
|
|
135
|
+
return res;
|
|
136
|
+
}
|
|
137
|
+
}
|
package/src/index.ts
ADDED
package/src/lib/utils.ts
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
export function __delegateProperties(ctx, ctxCaller) {
|
|
2
|
+
for (const property of ['state']) {
|
|
3
|
+
__delegateProperty(ctx, ctxCaller, property);
|
|
4
|
+
}
|
|
5
|
+
for (const property of ['headers']) {
|
|
6
|
+
__delegateProperty(ctx.request, ctxCaller.request, property);
|
|
7
|
+
// if (ctx.request[property]) req[property] = ctx.request[property];
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export function __delegateProperty(ctx, ctxCaller, property) {
|
|
12
|
+
if (!ctxCaller[property]) ctxCaller[property] = {};
|
|
13
|
+
ctx[property] = ctxCaller[property];
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
// export function delegateProperty(ctx, ctxCaller, property) {
|
|
17
|
+
// if (!ctxCaller[property]) return;
|
|
18
|
+
// if (!ctx[property]) ctx[property] = {};
|
|
19
|
+
// for (const key in ctxCaller[property]) {
|
|
20
|
+
// ctx[property][key] = ctxCaller[property][key];
|
|
21
|
+
// }
|
|
22
|
+
// }
|
|
23
|
+
|
|
24
|
+
// function _delegateProperty(ctx, ctxCaller, property) {
|
|
25
|
+
// const keyMock = `__executeBean__mock__${property}__`;
|
|
26
|
+
// const keyOriginal = `__executeBean__mock__${property}__original__`;
|
|
27
|
+
// if (['headers'].includes(property)) {
|
|
28
|
+
// ctx[keyOriginal] = ctx[property];
|
|
29
|
+
// }
|
|
30
|
+
// Object.defineProperty(ctx, property, {
|
|
31
|
+
// get() {
|
|
32
|
+
// const value = ctxCaller && ctxCaller[property];
|
|
33
|
+
// if (value) return value;
|
|
34
|
+
// //
|
|
35
|
+
// if (['headers'].includes(property)) {
|
|
36
|
+
// return ctx[keyOriginal];
|
|
37
|
+
// }
|
|
38
|
+
// //
|
|
39
|
+
// if (!ctx[keyMock]) {
|
|
40
|
+
// ctx[keyMock] = {};
|
|
41
|
+
// }
|
|
42
|
+
// return ctx[keyMock];
|
|
43
|
+
// },
|
|
44
|
+
// });
|
|
45
|
+
// }
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import type { IApiPathRecordMethodMap } from 'vona-module-a-web';
|
|
2
|
+
|
|
3
|
+
import { combineParamsAndQuery } from '@cabloy/utils';
|
|
4
|
+
import { BeanBase, cast, deepExtend } from 'vona';
|
|
5
|
+
import { Aspect } from 'vona-module-a-aspect';
|
|
6
|
+
import { Service } from 'vona-module-a-bean';
|
|
7
|
+
|
|
8
|
+
import type { IGeneralInfoOptions, IPerformActionOptions } from '../types/executor.ts';
|
|
9
|
+
|
|
10
|
+
import { SymbolRouterMiddleware } from '../types/executor.ts';
|
|
11
|
+
|
|
12
|
+
@Service()
|
|
13
|
+
export class ServiceExecutor extends BeanBase {
|
|
14
|
+
@Aspect.aopMethod('a-logger:log', { level: 'debug' })
|
|
15
|
+
async performActionInner<METHOD extends keyof IApiPathRecordMethodMap>(method: METHOD, url: string, options?: IPerformActionOptions): Promise<any> {
|
|
16
|
+
// app
|
|
17
|
+
const app = this.app;
|
|
18
|
+
// new ctx
|
|
19
|
+
return await this.bean.executor.newCtx(
|
|
20
|
+
async () => {
|
|
21
|
+
const ctx = this.ctx;
|
|
22
|
+
// default status code
|
|
23
|
+
ctx.res.statusCode = 404;
|
|
24
|
+
ctx.req.method = method.toUpperCase();
|
|
25
|
+
// url
|
|
26
|
+
ctx.req.url = combineParamsAndQuery(url, { params: options?.params, query: options?.query });
|
|
27
|
+
// headers
|
|
28
|
+
ctx.req.headers = Object.assign({}, ctx.req.headers, options?.headers);
|
|
29
|
+
// json
|
|
30
|
+
if (!ctx.req.headers.accept) {
|
|
31
|
+
ctx.req.headers.accept = 'application/json';
|
|
32
|
+
}
|
|
33
|
+
// authToken
|
|
34
|
+
if (options?.authToken) {
|
|
35
|
+
ctx.req.headers.authorization = `Bearer ${options?.authToken}`;
|
|
36
|
+
}
|
|
37
|
+
// // query
|
|
38
|
+
// if (options?.query !== undefined) {
|
|
39
|
+
// cast(ctx.req).query = cast(ctx.request).query = options?.query;
|
|
40
|
+
// }
|
|
41
|
+
// body
|
|
42
|
+
cast(ctx.req).body = ctx.request.body = options?.body ?? {}; // body should set {} if undefined/null
|
|
43
|
+
// onion
|
|
44
|
+
ctx.onionsDynamic = options?.onions;
|
|
45
|
+
// invoke middleware
|
|
46
|
+
await app[SymbolRouterMiddleware](ctx);
|
|
47
|
+
// check result
|
|
48
|
+
if (ctx.status === 200) {
|
|
49
|
+
if (!ctx.body || (ctx.body as any).code === undefined) {
|
|
50
|
+
// not check code, e.g. text/xml
|
|
51
|
+
return ctx.body;
|
|
52
|
+
}
|
|
53
|
+
if ((ctx.body as any).code === 0) {
|
|
54
|
+
return (ctx.body as any).data;
|
|
55
|
+
}
|
|
56
|
+
throw app.util.createError(ctx.body);
|
|
57
|
+
} else {
|
|
58
|
+
if (ctx.body && typeof ctx.body === 'object') {
|
|
59
|
+
throw app.util.createError(ctx.body);
|
|
60
|
+
} else {
|
|
61
|
+
throw app.util.createError({
|
|
62
|
+
code: ctx.status,
|
|
63
|
+
message: ctx.message,
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
},
|
|
68
|
+
{ innerAccess: options?.innerAccess, extraData: options?.extraData },
|
|
69
|
+
);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
prepareGeneralInfo(options?: IGeneralInfoOptions): IGeneralInfoOptions {
|
|
73
|
+
const current = this.bean.database.current;
|
|
74
|
+
const level = (options?.dbInfo?.level ?? current?.level ?? 0) + 1;
|
|
75
|
+
const clientName = options?.dbInfo?.clientName ?? current?.clientName;
|
|
76
|
+
const locale = options?.locale === undefined ? this.ctx?.locale : options.locale;
|
|
77
|
+
const tz = options?.tz === undefined ? this.ctx?.tz : options.tz;
|
|
78
|
+
const instanceName = options?.instanceName === undefined ? this.ctx?.instanceName : options.instanceName;
|
|
79
|
+
options = Object.assign({}, options, {
|
|
80
|
+
dbInfo: { level, clientName },
|
|
81
|
+
locale,
|
|
82
|
+
tz,
|
|
83
|
+
instanceName,
|
|
84
|
+
});
|
|
85
|
+
if (this.ctx) {
|
|
86
|
+
options = deepExtend({ extraData: { request: { headers: {} } } }, options)!;
|
|
87
|
+
// extraData: headers
|
|
88
|
+
const headers = options.extraData!.request!.headers!;
|
|
89
|
+
for (const key in this.ctx.request.headers) {
|
|
90
|
+
if (key.startsWith('x-vona-data-') && !headers[key]) {
|
|
91
|
+
const value = this.ctx.request.headers[key];
|
|
92
|
+
if (value) {
|
|
93
|
+
headers[key] = value as string;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
return options;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
// for (const key of ['x-clientid', 'x-scene']) {
|
|
103
|
+
// if (!headers[key]) {
|
|
104
|
+
// const value =
|
|
105
|
+
// key === 'x-clientid'
|
|
106
|
+
// ? (<any>ctx.app.bean).util.getFrontClientId()
|
|
107
|
+
// : (<any>ctx.app.bean).util.getFrontScene();
|
|
108
|
+
// if (value) {
|
|
109
|
+
// headers[key] = value;
|
|
110
|
+
// }
|
|
111
|
+
// }
|
|
112
|
+
// }
|
|
113
|
+
// for (const key of ['host', 'origin', 'referer', 'user-agent']) {
|
|
114
|
+
// if (!headers[key]) {
|
|
115
|
+
// const value = this.ctx.request.headers[key];
|
|
116
|
+
// if (value) {
|
|
117
|
+
// headers[key] = value;
|
|
118
|
+
// }
|
|
119
|
+
// }
|
|
120
|
+
// }
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import type { ContextState, IInstanceRecord, ILocaleRecord, PowerPartial } from 'vona';
|
|
2
|
+
import type { ConfigOnions } from 'vona-module-a-onion';
|
|
3
|
+
import type { IDbInfo, ITransactionOptions } from 'vona-module-a-orm';
|
|
4
|
+
|
|
5
|
+
export const SymbolRouterMiddleware = Symbol('SymbolRouterMiddleware');
|
|
6
|
+
|
|
7
|
+
export interface INewCtxExtraData {
|
|
8
|
+
state?: ContextState;
|
|
9
|
+
request?: {
|
|
10
|
+
headers?: Record<string, string>;
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export interface INewCtxOptions extends INewCtxBaseOptions {
|
|
15
|
+
dbInfo?: Partial<IDbInfo>;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export interface INewCtxBaseOptions {
|
|
19
|
+
locale?: keyof ILocaleRecord;
|
|
20
|
+
tz?: string;
|
|
21
|
+
instanceName?: keyof IInstanceRecord | undefined | null;
|
|
22
|
+
instance?: boolean;
|
|
23
|
+
transaction?: boolean;
|
|
24
|
+
transactionOptions?: ITransactionOptions;
|
|
25
|
+
extraData?: INewCtxExtraData | undefined;
|
|
26
|
+
innerAccess?: boolean;
|
|
27
|
+
req?: any;
|
|
28
|
+
res?: any;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
// cannot provide instanceName/locale/tz for safety
|
|
32
|
+
// can newCtx/newCtxIsolate for using new instanceName/locale/tz
|
|
33
|
+
export interface IPerformActionOptions {
|
|
34
|
+
innerAccess?: boolean;
|
|
35
|
+
params?: object;
|
|
36
|
+
query?: object;
|
|
37
|
+
headers?: object;
|
|
38
|
+
body?: any;
|
|
39
|
+
onions?: PowerPartial<ConfigOnions>;
|
|
40
|
+
authToken?: string;
|
|
41
|
+
extraData?: INewCtxExtraData | undefined;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export interface IGeneralInfoOptions {
|
|
45
|
+
dbInfo?: Partial<IDbInfo>;
|
|
46
|
+
locale?: keyof ILocaleRecord;
|
|
47
|
+
tz?: string;
|
|
48
|
+
instanceName?: keyof IInstanceRecord | undefined | null;
|
|
49
|
+
extraData?: INewCtxExtraData;
|
|
50
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './executor.ts';
|