Skip to content
This repository was archived by the owner on Nov 9, 2023. It is now read-only.

Commit 20e58bc

Browse files
authored
Add pending response type, use in middleware (#75)
1 parent ebf0c55 commit 20e58bc

File tree

2 files changed

+14
-14
lines changed

2 files changed

+14
-14
lines changed

src/JsonRpcEngine.ts

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,11 @@ export interface JsonRpcFailure extends JsonRpcResponseBase {
6060

6161
export type JsonRpcResponse<T> = JsonRpcSuccess<T> | JsonRpcFailure;
6262

63+
export interface PendingJsonRpcResponse<T> extends JsonRpcResponseBase {
64+
result?: T;
65+
error?: Error | JsonRpcError;
66+
}
67+
6368
export type JsonRpcEngineCallbackError = Error | JsonRpcError | null;
6469

6570
export type JsonRpcEngineReturnHandler = (
@@ -76,16 +81,11 @@ export type JsonRpcEngineEndCallback = (
7681

7782
export type JsonRpcMiddleware<T, U> = (
7883
req: JsonRpcRequest<T>,
79-
res: JsonRpcResponse<U>,
84+
res: PendingJsonRpcResponse<U>,
8085
next: JsonRpcEngineNextCallback,
8186
end: JsonRpcEngineEndCallback
8287
) => void;
8388

84-
interface InternalJsonRpcResponse extends JsonRpcResponseBase {
85-
result?: unknown;
86-
error?: Error | JsonRpcError;
87-
}
88-
8989
/**
9090
* A JSON-RPC request and response processor.
9191
* Give it a stack of middleware, pass it requests, and get back responses.
@@ -290,7 +290,7 @@ export class JsonRpcEngine extends SafeEventEmitter {
290290
}
291291

292292
const req: JsonRpcRequest<unknown> = { ...callerReq };
293-
const res: InternalJsonRpcResponse = {
293+
const res: PendingJsonRpcResponse<unknown> = {
294294
id: req.id,
295295
jsonrpc: req.jsonrpc,
296296
};
@@ -322,7 +322,7 @@ export class JsonRpcEngine extends SafeEventEmitter {
322322
*/
323323
private async _processRequest(
324324
req: JsonRpcRequest<unknown>,
325-
res: InternalJsonRpcResponse,
325+
res: PendingJsonRpcResponse<unknown>,
326326
): Promise<void> {
327327
const [
328328
error,
@@ -354,7 +354,7 @@ export class JsonRpcEngine extends SafeEventEmitter {
354354
*/
355355
private static async _runAllMiddleware(
356356
req: JsonRpcRequest<unknown>,
357-
res: InternalJsonRpcResponse,
357+
res: PendingJsonRpcResponse<unknown>,
358358
middlewareStack: JsonRpcMiddleware<unknown, unknown>[],
359359
): Promise<
360360
[
@@ -390,7 +390,7 @@ export class JsonRpcEngine extends SafeEventEmitter {
390390
*/
391391
private static _runMiddleware(
392392
req: JsonRpcRequest<unknown>,
393-
res: InternalJsonRpcResponse,
393+
res: PendingJsonRpcResponse<unknown>,
394394
middleware: JsonRpcMiddleware<unknown, unknown>,
395395
returnHandlers: JsonRpcEngineReturnHandler[],
396396
): Promise<[unknown, boolean]> {
@@ -432,7 +432,7 @@ export class JsonRpcEngine extends SafeEventEmitter {
432432
};
433433

434434
try {
435-
middleware(req, res as JsonRpcResponse<unknown>, next, end);
435+
middleware(req, res, next, end);
436436
} catch (error) {
437437
end(error);
438438
}
@@ -459,7 +459,7 @@ export class JsonRpcEngine extends SafeEventEmitter {
459459
*/
460460
private static _checkForCompletion(
461461
req: JsonRpcRequest<unknown>,
462-
res: InternalJsonRpcResponse,
462+
res: PendingJsonRpcResponse<unknown>,
463463
isComplete: boolean,
464464
): void {
465465
if (!('result' in res) && !('error' in res)) {

src/createAsyncMiddleware.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
import {
22
JsonRpcMiddleware,
33
JsonRpcRequest,
4-
JsonRpcResponse,
4+
PendingJsonRpcResponse,
55
} from './JsonRpcEngine';
66

77
export type AsyncJsonRpcEngineNextCallback = () => Promise<void>;
88

99
export type AsyncJsonrpcMiddleware<T, U> = (
1010
req: JsonRpcRequest<T>,
11-
res: JsonRpcResponse<U>,
11+
res: PendingJsonRpcResponse<U>,
1212
next: AsyncJsonRpcEngineNextCallback
1313
) => Promise<void>;
1414

0 commit comments

Comments
 (0)