Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
onError
hooks receive theerror
instance as argument:However plugins are spawned as child processes. The parent process communicates to them through
child_process
ipc
which uses JSON as the message format. This leads toerror
instances being converted to plain objects, which makes them lose theirError
prototype,message
,name
andstack
properties.This PR fixes this by serializing and parsing error instances ourselves.
Note that Node.js added support for
v8
serialization (based on the HTML structured clone algorithm) yesterday! :D This is available in Node13.2.0
. Unfortunately the Node.js version of the parent process is the same as child processes, so we need to support Node down to8.3.0
(see ongoing discussion #81).Tagging @sdras since this is part of the ongoing "error handling" thread.