Improve error handling from remote
This way copy all properties available in the error object and keep the real stack trace
This commit is contained in:
parent
cb91d4487b
commit
bbb5aef5d2
2 changed files with 20 additions and 2 deletions
|
@ -46,7 +46,7 @@ metaToValue = (meta) ->
|
|||
when 'array' then (metaToValue(el) for el in meta.members)
|
||||
when 'buffer' then new Buffer(meta.value)
|
||||
when 'promise' then Promise.resolve(then: metaToValue(meta.then))
|
||||
when 'error' then new Error(meta.message)
|
||||
when 'error' then metaToError(meta)
|
||||
when 'date' then new Date(meta.value)
|
||||
when 'exception'
|
||||
throw new Error("#{meta.message}\n#{meta.stack}")
|
||||
|
@ -110,6 +110,17 @@ metaToValue = (meta) ->
|
|||
|
||||
ret
|
||||
|
||||
# Convert meta data from browser into Error.
|
||||
metaToError = (meta) ->
|
||||
Object.getOwnPropertyNames(meta).reduce((error, prop) ->
|
||||
Object.defineProperty(error, prop, {
|
||||
get: -> meta[prop],
|
||||
enumerable: false,
|
||||
configurable: false
|
||||
})
|
||||
error
|
||||
, new Error())
|
||||
|
||||
# Browser calls a callback in renderer.
|
||||
ipc.on 'ATOM_RENDERER_CALLBACK', (id, args) ->
|
||||
callbacksRegistry.apply id, metaToValue(args)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue