@delight-rpc/long-running-procedure 0.5.1 → 0.5.3
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/lib/contract.js +1 -1
- package/lib/contract.js.map +1 -1
- package/lib/long-running-procedure/event-hub.js +1 -1
- package/lib/long-running-procedure/event-hub.js.map +1 -1
- package/lib/long-running-procedure/index.d.ts +2 -2
- package/lib/long-running-procedure/index.js +3 -3
- package/lib/long-running-procedure/index.js.map +1 -1
- package/lib/long-running-procedure-caller.js +2 -1
- package/lib/long-running-procedure-caller.js.map +1 -1
- package/lib/long-running-procedure-polling-caller.js +2 -1
- package/lib/long-running-procedure-polling-caller.js.map +1 -1
- package/lib/types.js +1 -1
- package/lib/types.js.map +1 -1
- package/lib/utils.d.ts +1 -0
- package/lib/utils.js +13 -0
- package/lib/utils.js.map +1 -0
- package/package.json +4 -6
- package/src/long-running-procedure-caller.ts +2 -1
- package/src/long-running-procedure-polling-caller.ts +2 -1
- package/src/utils.ts +12 -0
package/lib/contract.js
CHANGED
|
@@ -3,7 +3,7 @@ export var CallState;
|
|
|
3
3
|
(function (CallState) {
|
|
4
4
|
CallState[CallState["Pending"] = 0] = "Pending";
|
|
5
5
|
CallState[CallState["Settled"] = 1] = "Settled";
|
|
6
|
-
})(CallState
|
|
6
|
+
})(CallState || (CallState = {}));
|
|
7
7
|
export class CallNotFound extends CustomError {
|
|
8
8
|
}
|
|
9
9
|
//# sourceMappingURL=contract.js.map
|
package/lib/contract.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAGhD,MAAM,CAAN,IAAY,SAGX;AAHD,WAAY,SAAS;IACnB,+CAAO,CAAA;IACP,+CAAO,CAAA;AACT,CAAC,EAHW,SAAS,
|
|
1
|
+
{"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAGhD,MAAM,CAAN,IAAY,SAGX;AAHD,WAAY,SAAS;IACnB,+CAAO,CAAA;IACP,+CAAO,CAAA;AACT,CAAC,EAHW,SAAS,KAAT,SAAS,QAGpB;AAsCD,MAAM,OAAO,YAAa,SAAQ,WAAW;CAAG"}
|
|
@@ -4,7 +4,7 @@ export var Event;
|
|
|
4
4
|
(function (Event) {
|
|
5
5
|
Event[Event["Settled"] = 0] = "Settled";
|
|
6
6
|
Event[Event["Removed"] = 1] = "Removed";
|
|
7
|
-
})(Event
|
|
7
|
+
})(Event || (Event = {}));
|
|
8
8
|
export class EventHub {
|
|
9
9
|
constructor() {
|
|
10
10
|
this.idToEmitter = new Map();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-hub.js","sourceRoot":"","sources":["../../src/long-running-procedure/event-hub.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAErD,MAAM,CAAN,IAAY,KAGX;AAHD,WAAY,KAAK;IACf,uCAAO,CAAA;IACP,uCAAO,CAAA;AACT,CAAC,EAHW,KAAK,
|
|
1
|
+
{"version":3,"file":"event-hub.js","sourceRoot":"","sources":["../../src/long-running-procedure/event-hub.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAErD,MAAM,CAAN,IAAY,KAGX;AAHD,WAAY,KAAK;IACf,uCAAO,CAAA;IACP,uCAAO,CAAA;AACT,CAAC,EAHW,KAAK,KAAL,KAAK,QAGhB;AAOD,MAAM,OAAO,QAAQ;IAArB;QACU,gBAAW,GAAsC,IAAI,GAAG,EAAE,CAAA;IAuDpE,CAAC;IArDC,KAAK,CAAC,OAAO,CACX,EAAU,EACV,KAAwB,EACxB,WAAyB;QAEzB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,OAAO,EAAE,CAAC,CAAA;QACzC,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAE,CAAA;QACzC,MAAM,cAAc,CAAC,OAAO,EAAE,KAAK,EAAE,WAAW,CAAC,CAAA;IACnD,CAAC;IAED,EAAE,CACA,EAAU,EACV,KAAQ,EACR,QAA2C;QAE3C,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,OAAO,EAAE,CAAC,CAAA;QACzC,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAE,CAAA;QACzC,OAAO,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;IACpC,CAAC;IAED,IAAI,CACF,EAAU,EACV,KAAQ,EACR,QAA2C;QAE3C,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,OAAO,EAAE,CAAC,CAAA;QACzC,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAE,CAAA;QACzC,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;IACtC,CAAC;IAED,IAAI,CACF,EAAU,EACV,KAAQ,EACR,GAAG,IAAoB;;QAEvB,MAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,0CAAE,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAA;IAChD,CAAC;IAED,kBAAkB,CAAC,EAAU;QAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACxC,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,kBAAkB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAC3C,CAAC;IACH,CAAC;CACF"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ILongRunningProcedure, CallState } from
|
|
2
|
-
import { Store } from
|
|
1
|
+
import { ILongRunningProcedure, CallState } from "../contract.js";
|
|
2
|
+
import { Store } from "../types.js";
|
|
3
3
|
export declare class LongRunningProcedure<Args extends unknown[], Result, Error> implements ILongRunningProcedure<Args, Result> {
|
|
4
4
|
private procedure;
|
|
5
5
|
private eventHub;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { nanoid } from 'nanoid';
|
|
2
|
-
import { CallState, CallNotFound } from
|
|
2
|
+
import { CallState, CallNotFound } from "../contract.js";
|
|
3
3
|
import { toResultPromise } from 'return-style';
|
|
4
4
|
import { AbortController } from 'extra-abort';
|
|
5
5
|
import { EventHub, Event } from './event-hub.js';
|
|
6
6
|
import { setTimeout } from 'extra-timers';
|
|
7
|
-
import { StoreItemState } from
|
|
8
|
-
import { MemoryStore } from
|
|
7
|
+
import { StoreItemState } from "../types.js";
|
|
8
|
+
import { MemoryStore } from "../memory-store.js";
|
|
9
9
|
export class LongRunningProcedure {
|
|
10
10
|
constructor(procedure, { store = new MemoryStore(), timeToLive, timeout } = {}) {
|
|
11
11
|
this.procedure = procedure;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/long-running-procedure/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAyB,SAAS,EAAE,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/long-running-procedure/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { throwIfAborted } from './utils.js';
|
|
1
2
|
export class LongRunningProcedureCaller {
|
|
2
3
|
constructor(procedure) {
|
|
3
4
|
this.procedure = procedure;
|
|
@@ -5,7 +6,7 @@ export class LongRunningProcedureCaller {
|
|
|
5
6
|
async call(...args) {
|
|
6
7
|
const realArgs = args.slice(0, args.length - 1);
|
|
7
8
|
const signal = args[args.length - 1];
|
|
8
|
-
|
|
9
|
+
throwIfAborted(signal);
|
|
9
10
|
const id = await this.procedure.call(realArgs);
|
|
10
11
|
try {
|
|
11
12
|
if (signal.aborted) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"long-running-procedure-caller.js","sourceRoot":"","sources":["../src/long-running-procedure-caller.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"long-running-procedure-caller.js","sourceRoot":"","sources":["../src/long-running-procedure-caller.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAM3C,MAAM,OAAO,0BAA0B;IAErC,YAAoB,SAA8C;QAA9C,cAAS,GAAT,SAAS,CAAqC;IAAG,CAAC;IAEtE,KAAK,CAAC,IAAI,CAAC,GAAG,IAA0C;QACtD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAS,CAAA;QACvD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAgB,CAAA;QACnD,cAAc,CAAC,MAAM,CAAC,CAAA;QAEtB,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAC9C,IAAI,CAAC;YACH,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;YAChC,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE;oBAC1C,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;gBAChC,CAAC,CAAC,CAAA;YACJ,CAAC;YAED,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;QAC3C,CAAC;gBAAS,CAAC;YACT,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QACjC,CAAC;IACH,CAAC;CACF"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { delay } from 'extra-promise';
|
|
2
2
|
import { CallState } from './contract.js';
|
|
3
|
+
import { throwIfAborted } from './utils.js';
|
|
3
4
|
export class LongRunningProcedurePollingCaller {
|
|
4
5
|
constructor(procedure, pollingInterval) {
|
|
5
6
|
this.procedure = procedure;
|
|
@@ -8,7 +9,7 @@ export class LongRunningProcedurePollingCaller {
|
|
|
8
9
|
async call(...args) {
|
|
9
10
|
const realArgs = args.slice(0, args.length - 1);
|
|
10
11
|
const signal = args[args.length - 1];
|
|
11
|
-
|
|
12
|
+
throwIfAborted(signal);
|
|
12
13
|
const id = await this.procedure.call(realArgs);
|
|
13
14
|
try {
|
|
14
15
|
if (signal.aborted) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"long-running-procedure-polling-caller.js","sourceRoot":"","sources":["../src/long-running-procedure-polling-caller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AACrC,OAAO,EAAyB,SAAS,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"long-running-procedure-polling-caller.js","sourceRoot":"","sources":["../src/long-running-procedure-polling-caller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AACrC,OAAO,EAAyB,SAAS,EAAE,MAAM,eAAe,CAAA;AAEhE,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAM3C,MAAM,OAAO,iCAAiC;IAE5C,YACU,SAA8C,EAC9C,eAAuB;QADvB,cAAS,GAAT,SAAS,CAAqC;QAC9C,oBAAe,GAAf,eAAe,CAAQ;IAC9B,CAAC;IAEJ,KAAK,CAAC,IAAI,CAAC,GAAG,IAA0C;QACtD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAS,CAAA;QACvD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAgB,CAAA;QACnD,cAAc,CAAC,MAAM,CAAC,CAAA;QAEtB,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAC9C,IAAI,CAAC;YACH,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;YAChC,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE;oBAC1C,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;gBAChC,CAAC,CAAC,CAAA;YACJ,CAAC;YAED,OAAO,IAAI,EAAE,CAAC;gBACZ,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;gBAE/C,QAAQ,KAAK,EAAE,CAAC;oBACd,KAAK,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;wBACvB,MAAM,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;wBACjC,MAAK;oBACP,CAAC;oBACD,KAAK,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;wBACvB,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;oBAC3C,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QACjC,CAAC;IACH,CAAC;CACF"}
|
package/lib/types.js
CHANGED
|
@@ -3,5 +3,5 @@ export var StoreItemState;
|
|
|
3
3
|
StoreItemState[StoreItemState["Pending"] = 0] = "Pending";
|
|
4
4
|
StoreItemState[StoreItemState["Resolved"] = 1] = "Resolved";
|
|
5
5
|
StoreItemState[StoreItemState["Rejected"] = 2] = "Rejected";
|
|
6
|
-
})(StoreItemState
|
|
6
|
+
})(StoreItemState || (StoreItemState = {}));
|
|
7
7
|
//# sourceMappingURL=types.js.map
|
package/lib/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAEA,MAAM,CAAN,IAAY,cAIX;AAJD,WAAY,cAAc;IACxB,yDAAO,CAAA;IACP,2DAAQ,CAAA;IACR,2DAAQ,CAAA;AACV,CAAC,EAJW,cAAc,
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAEA,MAAM,CAAN,IAAY,cAIX;AAJD,WAAY,cAAc;IACxB,yDAAO,CAAA;IACP,2DAAQ,CAAA;IACR,2DAAQ,CAAA;AACV,CAAC,EAJW,cAAc,KAAd,cAAc,QAIzB"}
|
package/lib/utils.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function throwIfAborted(signal: AbortSignal): void;
|
package/lib/utils.js
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { isntUndefined } from '@blackglory/prelude';
|
|
2
|
+
import { AbortError } from 'extra-abort';
|
|
3
|
+
export function throwIfAborted(signal) {
|
|
4
|
+
if (signal.aborted) {
|
|
5
|
+
if (isntUndefined(signal.reason)) {
|
|
6
|
+
throw signal.reason;
|
|
7
|
+
}
|
|
8
|
+
else {
|
|
9
|
+
throw new AbortError();
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=utils.js.map
|
package/lib/utils.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAExC,MAAM,UAAU,cAAc,CAAC,MAAmB;IAChD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,IAAI,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YACjC,MAAM,MAAM,CAAC,MAAM,CAAA;QACrB,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,UAAU,EAAE,CAAA;QACxB,CAAC;IACH,CAAC;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@delight-rpc/long-running-procedure",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.3",
|
|
4
4
|
"description": "",
|
|
5
5
|
"files": [
|
|
6
6
|
"lib",
|
|
@@ -20,8 +20,6 @@
|
|
|
20
20
|
"prepare": "ts-patch install -s",
|
|
21
21
|
"lint": "eslint --ext .js,.jsx,.ts,.tsx --quiet src __tests__",
|
|
22
22
|
"test": "cross-env NODE_OPTIONS=--experimental-vm-modules jest --runInBand --no-cache --config jest.config.cjs",
|
|
23
|
-
"test:debug": "cross-env NODE_OPTIONS=--experimental-vm-modules node --inspect-brk node_modules/.bin/jest --runInBand --config jest.config.cjs",
|
|
24
|
-
"test:coverage": "cross-env NODE_OPTIONS=--experimental-vm-modules jest --runInBand --coverage --config jest.config.cjs",
|
|
25
23
|
"prepublishOnly": "run-s prepare clean build",
|
|
26
24
|
"clean": "rimraf lib",
|
|
27
25
|
"build": "tsc --project tsconfig.build.json",
|
|
@@ -29,7 +27,7 @@
|
|
|
29
27
|
},
|
|
30
28
|
"husky": {
|
|
31
29
|
"hooks": {
|
|
32
|
-
"pre-commit": "run-s prepare lint build test",
|
|
30
|
+
"pre-commit": "run-s clean prepare lint build test",
|
|
33
31
|
"commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
|
|
34
32
|
}
|
|
35
33
|
},
|
|
@@ -49,9 +47,9 @@
|
|
|
49
47
|
"rimraf": "^3.0.2",
|
|
50
48
|
"standard-version": "^9.3.2",
|
|
51
49
|
"ts-jest": "^29.0.5",
|
|
52
|
-
"ts-patch": "^
|
|
50
|
+
"ts-patch": "^3.3.0",
|
|
53
51
|
"tslib": "^2.5.0",
|
|
54
|
-
"typescript": "5.
|
|
52
|
+
"typescript": "^5.8.3",
|
|
55
53
|
"typescript-transform-paths": "^3.4.6"
|
|
56
54
|
},
|
|
57
55
|
"dependencies": {
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ILongRunningProcedure } from './contract.js'
|
|
2
2
|
import { ILongRunningProcedureCaller } from './types.js'
|
|
3
|
+
import { throwIfAborted } from './utils.js'
|
|
3
4
|
|
|
4
5
|
/**
|
|
5
6
|
* 以长连接方式接收长时运行过程的结果, 结果会尽快返回.
|
|
@@ -12,7 +13,7 @@ implements ILongRunningProcedureCaller<Args, Result> {
|
|
|
12
13
|
async call(...args: [...args: Args, signal: AbortSignal]): Promise<Result> {
|
|
13
14
|
const realArgs = args.slice(0, args.length - 1) as Args
|
|
14
15
|
const signal = args[args.length - 1] as AbortSignal
|
|
15
|
-
|
|
16
|
+
throwIfAborted(signal)
|
|
16
17
|
|
|
17
18
|
const id = await this.procedure.call(realArgs)
|
|
18
19
|
try {
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { delay } from 'extra-promise'
|
|
2
2
|
import { ILongRunningProcedure, CallState } from './contract.js'
|
|
3
3
|
import { ILongRunningProcedureCaller } from './types.js'
|
|
4
|
+
import { throwIfAborted } from './utils.js'
|
|
4
5
|
|
|
5
6
|
/**
|
|
6
7
|
* 以轮询方式接收长时运行过程的结果, 这无法尽快返回结果.
|
|
@@ -16,7 +17,7 @@ implements ILongRunningProcedureCaller<Args, Result> {
|
|
|
16
17
|
async call(...args: [...args: Args, signal: AbortSignal]): Promise<Result> {
|
|
17
18
|
const realArgs = args.slice(0, args.length - 1) as Args
|
|
18
19
|
const signal = args[args.length - 1] as AbortSignal
|
|
19
|
-
|
|
20
|
+
throwIfAborted(signal)
|
|
20
21
|
|
|
21
22
|
const id = await this.procedure.call(realArgs)
|
|
22
23
|
try {
|
package/src/utils.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { isntUndefined } from '@blackglory/prelude'
|
|
2
|
+
import { AbortError } from 'extra-abort'
|
|
3
|
+
|
|
4
|
+
export function throwIfAborted(signal: AbortSignal): void {
|
|
5
|
+
if (signal.aborted) {
|
|
6
|
+
if (isntUndefined(signal.reason)) {
|
|
7
|
+
throw signal.reason
|
|
8
|
+
} else {
|
|
9
|
+
throw new AbortError()
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
}
|