Skip to content
Open
Show file tree
Hide file tree
Changes from 48 commits
Commits
Show all changes
79 commits
Select commit Hold shift + click to select a range
928da10
refactor: Move existing implementation to /legacy dir
rekmarks Jul 9, 2025
e5215d5
refactor: Add /legacy export path
rekmarks Jul 10, 2025
499f5e5
refactor: Deprecate all /legacy exports
rekmarks Jul 14, 2025
67fde3f
fix: Legacy json-rpc-engine paths
rekmarks Jul 14, 2025
67da900
chore: Silence some lint warnings in the legacy engine
rekmarks Jul 15, 2025
3d7f3ef
feat: Add MiddlewareEngine
rekmarks Jul 10, 2025
7cf81be
feat: MiddlewareEngine: types WIP
rekmarks Jul 14, 2025
50096d2
feat: MiddlewareEngine: immutability WIP
rekmarks Jul 14, 2025
383bfb7
feat: MiddlewareEngine: immutability using immer WIP
rekmarks Jul 14, 2025
022b24f
feat: JsonRpcEngineV2: Rename and add internal error class
rekmarks Jul 14, 2025
c8baf7f
test: Add initial JsonRpcEngineV2 tests
rekmarks Jul 15, 2025
77f3aa2
test: Add failing return handlers test case
rekmarks Jul 15, 2025
00c6316
refactor: Fix asMiddleware composability and add tests
rekmarks Jul 15, 2025
05f3ed6
refactor: Make context a Map and add tests
rekmarks Jul 15, 2025
79f1623
test: Add asynchrony tests
rekmarks Jul 17, 2025
d5c9037
test: Add utils tests
rekmarks Jul 17, 2025
9067306
fix: Ensure params deletion propagates in asMiddleware
rekmarks Jul 17, 2025
3759648
feat: Add assertGet utility to context
rekmarks Jul 17, 2025
cc6c732
refactor: Migrate implementation from return handlers to next()
rekmarks Jul 18, 2025
92d3c10
refactor: Refine next() implementation, begin tests
rekmarks Jul 19, 2025
ccbdc03
test: Complete test suite
rekmarks Jul 19, 2025
6544b7c
refactor: Do not require middleware to return the result after next()
rekmarks Jul 19, 2025
5af8c02
refactor: Export isRequest & isNotification utils
rekmarks Jul 19, 2025
0a9e8fc
chore: Remove unused test setup file
rekmarks Jul 19, 2025
684f0f5
docs: Update documentation
rekmarks Jul 21, 2025
eeeedbd
feat: Add JsonRpcServer abstraction
rekmarks Jul 21, 2025
0bbffcd
docs: Document JsonRpcServer
rekmarks Jul 21, 2025
7da112c
refactor: Convert MiddlewareContext to class
rekmarks Jul 23, 2025
416ff7e
feat: Add backwards compatibility utils
rekmarks Jul 23, 2025
d45fcd3
refactor: Refactor #handle()
rekmarks Jul 23, 2025
8a5c07f
feat: Add destroy() method
rekmarks Jul 23, 2025
ef48814
refactor: Revert legacy export path, add v2 export path
rekmarks Jul 23, 2025
0226ba5
chore: Lint
rekmarks Jul 23, 2025
71315f4
docs: Update CHANGELOG.md
rekmarks Jul 23, 2025
df353cf
docs: Document legacy / v2 compatibility
rekmarks Jul 23, 2025
3927882
refactor: Make handleError sync-only
rekmarks Jul 24, 2025
0959477
docs: Remove id from notification example
rekmarks Jul 25, 2025
944acae
feat: Permit constructing JsonRpcServer with middleware
rekmarks Jul 25, 2025
8e9a9fb
docs: Update readme
rekmarks Jul 25, 2025
edde41c
feat: Permit symbol keys in middleware context
rekmarks Jul 25, 2025
42264e2
refactor: Make the context append-only
rekmarks Jul 26, 2025
43f2c94
refactor: Make handleError optional for JsonRpcServer
rekmarks Jul 28, 2025
2e5b14c
feat: Accept initial context via handle()/handleAny()
rekmarks Jul 28, 2025
7897c2c
refactor: Add default generics to JsonRpcEngineV2
rekmarks Jul 28, 2025
c989b9b
test: Add "middleware with engine.handle()" tests
rekmarks Aug 12, 2025
647a62f
refactor: Rename internal variable
rekmarks Aug 13, 2025
070191d
docs: Tweak changelog
rekmarks Aug 14, 2025
ff30e7b
fix: Add v2.js to package.json files array
rekmarks Aug 14, 2025
2e6bbfd
refactor: Use regular method syntax for #makeMiddlewareIterator
rekmarks Aug 28, 2025
2ca42af
refactor: Get rid of one type assertion
rekmarks Aug 28, 2025
0e64adf
docs: Improve handleAny documentation
rekmarks Aug 28, 2025
d5dd506
refactor: Make test util types narrower
rekmarks Aug 28, 2025
d4b6054
refactor: handleError -> onError
rekmarks Aug 28, 2025
91fca13
refactor: Use ts-expect-error instead of a cast
rekmarks Aug 29, 2025
308323b
Merge branch 'main' into rekm/json-rpc-engine-rewrite-next
rekmarks Sep 15, 2025
bf93edd
docs: Tweak some comments and docstrings
rekmarks Sep 15, 2025
e014f25
Merge branch 'main' into rekm/json-rpc-engine-rewrite-next
rekmarks Sep 29, 2025
725c6d7
refactor: Respond to review
rekmarks Oct 8, 2025
af3d52f
refactor: Make destroy() throw on failure
rekmarks Oct 9, 2025
4ccf262
docs: Tweak requests vs. notifications docs
rekmarks Oct 9, 2025
863e071
docs: Make tweaks to docs actually make sense
rekmarks Oct 9, 2025
5686990
docs: Add in-line comment for returning undefined in next()
rekmarks Oct 9, 2025
a0ee960
test: Tweak a test
rekmarks Oct 9, 2025
5fe6f64
docs: Fix typo
rekmarks Oct 9, 2025
e10f471
Merge branch 'main' into rekm/json-rpc-engine-rewrite-next
rekmarks Oct 9, 2025
ca15180
refactor: Constrain the result type by the request
rekmarks Oct 10, 2025
f821e05
refactor: Fix handle() overloads, remove handleAny()
rekmarks Oct 10, 2025
e3cd041
test: Add mixed engines pipeline test
rekmarks Oct 10, 2025
25be918
docs: Tweak handle docstrings
rekmarks Oct 10, 2025
a8d4eb6
test: Add parallel processing test
rekmarks Oct 13, 2025
092c683
Merge branch 'main' into rekm/json-rpc-engine-rewrite-next
rekmarks Oct 13, 2025
7d8a23d
test: Tweak parallel processing test
rekmarks Oct 13, 2025
866aed6
test: Add "no queueing" test case
rekmarks Oct 14, 2025
19324aa
Merge branch 'main' into rekm/json-rpc-engine-rewrite-next
rekmarks Oct 17, 2025
cb45c79
refactor: Remove JsonRpcEngine Result generic
rekmarks Oct 16, 2025
2aeb168
feat: Make handle() overload abuse even more difficult
rekmarks Oct 16, 2025
761d8d2
feat: Improve signatures of JsonRpcServer.handle()
rekmarks Oct 17, 2025
56f5a8d
fix: Make compatbility-utils.ts compatible with Jest
rekmarks Oct 17, 2025
7d7ded1
refactor: Replace rfdc with klona
rekmarks Oct 17, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 0 additions & 6 deletions eslint-warning-thresholds.json
Original file line number Diff line number Diff line change
Expand Up @@ -191,12 +191,6 @@
"packages/gas-fee-controller/src/determineGasFeeCalculations.ts": {
"jsdoc/tag-lines": 4
},
"packages/json-rpc-engine/src/JsonRpcEngine.test.ts": {
"jest/no-conditional-in-test": 2
},
"packages/json-rpc-engine/src/JsonRpcEngine.ts": {
"@typescript-eslint/prefer-promise-reject-errors": 2
},
"packages/json-rpc-middleware-stream/src/index.test.ts": {
"@typescript-eslint/prefer-promise-reject-errors": 3,
"no-empty-function": 1
Expand Down
11 changes: 11 additions & 0 deletions packages/json-rpc-engine/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,21 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

### Added

- `JsonRpcEngineV2` ([#6176](https://github.com/MetaMask/core/pull/6176))
- This is a complete rewrite of `JsonRpcEngine`, intended to replace the original implementation.
See the readme for details.

### Changed

- Bump `@metamask/utils` from `^11.2.0` to `^11.4.2` ([#6054](https://github.com/MetaMask/core/pull/6054))

### Deprecated

- `JsonRpcEngine` and related types ([#6176](https://github.com/MetaMask/core/pull/6176))
- To be replaced by `JsonRpcEngineV2`.

## [10.0.3]

### Changed
Expand Down
Loading
Loading