Files
enviPy-bayer/static/js/ketcher2/node_modules/tap/lib/extra-from-error.js
2025-06-23 20:13:54 +02:00

48 lines
1011 B
JavaScript

var stack = require('./stack.js')
module.exports = function (er, extra, options) {
extra = Object.keys(options || {}).reduce(function (set, k) {
if (!(k in set) && !/^tapChild/.test(k))
set[k] = options[k]
return set
}, extra || {})
if (!er || typeof er !== 'object') {
extra.error = er
return extra
}
var message = er.message
var addName = true
if (!message && er.stack) {
message = er.stack.split('\n')[0]
addName = false
}
er.message = ''
var st = er.stack
if (st) {
st = st.split('\n')
// parse out the 'at' bit from the first line.
extra.at = stack.parseLine(st[1])
extra.stack = stack.clean(st)
}
er.message = message
if (er.name && er.name !== 'Error')
extra.type = er.name
Object.keys(er).forEach(function (k) {
if (k === 'message' ||
k === 'domainEmitter' ||
k === 'domainThrown' ||
k === 'domain' ||
k === 'domainBound')
return
extra[k] = er[k]
})
return extra
}