Skip to content

Commit 1ee3bbb

Browse files
committed
fix: Ensure json-rpc-engine/v2 can be resolved without builds
1 parent 8569e99 commit 1ee3bbb

File tree

5 files changed

+19
-11
lines changed

5 files changed

+19
-11
lines changed

jest.config.packages.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,9 @@ module.exports = {
8080
// Here we ensure that Jest resolves `@metamask/*` imports to the uncompiled source code for packages that live in this repo.
8181
// NOTE: This must be synchronized with the `paths` option in `tsconfig.packages.json`.
8282
moduleNameMapper: {
83+
'^@metamask/json-rpc-engine/v2$': [
84+
'<rootDir>/../json-rpc-engine/src/v2/index.ts',
85+
],
8386
'^@metamask/(.+)$': [
8487
'<rootDir>/../$1/src',
8588
// Some @metamask/* packages we are referencing aren't in this monorepo,

packages/eth-json-rpc-provider/src/internal-provider.test.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import { Web3Provider } from '@ethersproject/providers';
22
import EthQuery from '@metamask/eth-query';
33
import EthJsQuery from '@metamask/ethjs-query';
44
import { JsonRpcEngine } from '@metamask/json-rpc-engine';
5+
import type { JsonRpcMiddleware } from '@metamask/json-rpc-engine/v2';
56
import { JsonRpcEngineV2, JsonRpcServer } from '@metamask/json-rpc-engine/v2';
67
import { providerErrors } from '@metamask/rpc-errors';
78
import { type JsonRpcRequest, type Json } from '@metamask/utils';
@@ -32,7 +33,7 @@ const createEngine = (method: string, result: ResultParam) => {
3233
};
3334

3435
const createServer = (method: string, result: ResultParam) => {
35-
const engine = JsonRpcEngineV2.create({
36+
const engine = JsonRpcEngineV2.create<JsonRpcMiddleware<JsonRpcRequest>>({
3637
middleware: [
3738
({ request, next }) => {
3839
if (request.method === method) {
@@ -44,8 +45,7 @@ const createServer = (method: string, result: ResultParam) => {
4445
},
4546
],
4647
});
47-
const server = new JsonRpcServer({ engine });
48-
return server;
48+
return new JsonRpcServer<JsonRpcMiddleware<JsonRpcRequest>>({ engine });
4949
};
5050

5151
describe('legacy constructor', () => {

packages/eth-json-rpc-provider/src/internal-provider.ts

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
import type { JsonRpcEngine } from '@metamask/json-rpc-engine';
2-
import type { JsonRpcServer } from '@metamask/json-rpc-engine/v2';
2+
import type {
3+
JsonRpcMiddleware,
4+
JsonRpcServer,
5+
} from '@metamask/json-rpc-engine/v2';
36
import { JsonRpcError } from '@metamask/rpc-errors';
47
import type { JsonRpcFailure } from '@metamask/utils';
58
import {
@@ -31,7 +34,9 @@ type Options =
3134
engine: JsonRpcEngine;
3235
}
3336
| {
34-
rpcHandler: JsonRpcEngine | JsonRpcServer;
37+
rpcHandler:
38+
| JsonRpcEngine
39+
| JsonRpcServer<JsonRpcMiddleware<JsonRpcRequest>>;
3540
};
3641

3742
/**
@@ -41,7 +46,9 @@ type Options =
4146
* It is not compliant with any Ethereum provider standard.
4247
*/
4348
export class InternalProvider {
44-
readonly #rpcHandler: JsonRpcEngine | JsonRpcServer;
49+
readonly #rpcHandler:
50+
| JsonRpcEngine
51+
| JsonRpcServer<JsonRpcMiddleware<JsonRpcRequest>>;
4552

4653
/**
4754
* Construct a InternalProvider from a JSON-RPC server or legacy engine.

packages/eth-json-rpc-provider/src/provider-from-middleware.ts

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,8 @@ export function providerFromMiddleware<
3131
* @returns An Ethereum provider.
3232
*/
3333
export function providerFromMiddlewareV2<
34-
Params extends JsonRpcParams,
35-
Result extends Json,
36-
>(
37-
middleware: JsonRpcMiddleware<JsonRpcRequest<Params>, Result>,
38-
): InternalProvider {
34+
Middleware extends JsonRpcMiddleware<JsonRpcRequest, Json>,
35+
>(middleware: Middleware): InternalProvider {
3936
return new InternalProvider({
4037
rpcHandler: new JsonRpcServer({ middleware: [middleware] }),
4138
});

tsconfig.packages.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
* `jest.config.packages.js`.
1414
*/
1515
"paths": {
16+
"@metamask/json-rpc-engine/v2": ["../json-rpc-engine/src/v2/index.ts"],
1617
"@metamask/*": ["../*/src"]
1718
},
1819
"strict": true,

0 commit comments

Comments
 (0)