All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Applied eslint rules from core monorepo (#172)
- Bumped
@metamask/utils
from^5.0.2
to^8.1.0
#158 (#162) - Bumped
@metamask/rpc-errors
from^5.0.0
to^6.0.0
(#162)
- Bumped
@metamask/safe-event-emitter
from^2.0.0
to^3.0.0
(#148) - Bumped
@metamask/utils
from^5.0.1
to^5.0.2
(#151)
- Fixed handling of empty batch array in requests (#153)
- BREAKING: Require a minimum Node version of 16 (#139)
- BREAKING: Use
@metamask/utils
types (#105)- The JSON-RPC engine and all middleware now use
@metamask/utils
JSON-RPC types
- The JSON-RPC engine and all middleware now use
- (BREAKING) Return a
null
instead ofundefined
responseid
for malformed request objects (#91)- This is very unlikely to be breaking in practice, but the behavior could have been relied on.
- Change package name to
@metamask/json-rpc-engine
(#139) - Use
@metamask/rpc-errors
(#138)
6.1.0 - 2020-11-20
- Add
PendingJsonRpcResponse
interface for use in middleware (#75)
- Use
async
/await
andtry
/catch
instead of Promise methods everywhere (#74)- Consumers may notice improved stack traces on certain platforms.
6.0.0 - 2020-11-19
- Add docstrings for public
JsonRpcEngine
methods (#70)
- (BREAKING) Refactor exports (#69)
- All exports are now named, and available via the package entry point.
- All default exports have been removed.
- (BREAKING) Convert
asMiddleware
to instance method (#69)- The
asMiddleware
export has been removed.
- The
- (BREAKING) Add runtime typechecks to
JsonRpcEngine.handle()
, and error responses if they fail (#70)- Requests will now error if:
- The request is not a plain object, or if the
method
property is not astring
. Empty strings are allowed. - A
next
middleware callback is called with a truthy, non-function parameter.
- The request is not a plain object, or if the
- Requests will now error if:
- Migrate to TypeScript (#69)
- Hopefully improve stack traces by removing uses of
Promise.then
and.catch
internally (#70) - Make some internal
JsonRpcEngine
methodsstatic
(#71)
5.4.0 - 2020-11-07
5.3.0 - 2020-07-30
- Response object errors no longer include a
stack
property
5.2.0 - 2020-07-24
- Promise signatures for
engine.handle
(#55)- So, in addition to
engine.handle(request, callback)
, you can do e.g.await engine.handle(request)
.
- So, in addition to
- Remove
async
andpromise-to-callback
dependencies- These dependencies were used internally for middleware flow control.
They have been replaced with Promises and native
async
/await
, which means that some operations are no longer eagerly executed. This change may affect consumers that depend on the eager execution of middleware during request processing, outside of middleware functions and request handlers.- In general, it is a bad practice to work with state that depends on middleware execution, while the middleware are executing.
- These dependencies were used internally for middleware flow control.
They have been replaced with Promises and native