58 lines
1.6 KiB
JavaScript
58 lines
1.6 KiB
JavaScript
|
const Raven = require('raven-js')
|
||
|
const METAMASK_DEBUG = 'GULP_METAMASK_DEBUG'
|
||
|
const extractEthjsErrorMessage = require('./extractEthjsErrorMessage')
|
||
|
const PROD = 'https://[email protected]/273505'
|
||
|
const DEV = 'https://[email protected]/273496'
|
||
|
|
||
|
module.exports = setupRaven
|
||
|
|
||
|
// Setup raven / sentry remote error reporting
|
||
|
function setupRaven(opts) {
|
||
|
const { release } = opts
|
||
|
let ravenTarget
|
||
|
|
||
|
if (METAMASK_DEBUG) {
|
||
|
console.log('Setting up Sentry Remote Error Reporting: DEV')
|
||
|
ravenTarget = DEV
|
||
|
} else {
|
||
|
console.log('Setting up Sentry Remote Error Reporting: PROD')
|
||
|
ravenTarget = PROD
|
||
|
}
|
||
|
|
||
|
const client = Raven.config(ravenTarget, {
|
||
|
release,
|
||
|
transport: function(opts) {
|
||
|
const report = opts.data
|
||
|
// simplify ethjs error messages
|
||
|
report.exception.values.forEach(item => {
|
||
|
item.value = extractEthjsErrorMessage(item.value)
|
||
|
})
|
||
|
// modify report urls
|
||
|
rewriteReportUrls(report)
|
||
|
// make request normally
|
||
|
client._makeRequest(opts)
|
||
|
},
|
||
|
})
|
||
|
client.install()
|
||
|
|
||
|
return Raven
|
||
|
}
|
||
|
|
||
|
function rewriteReportUrls(report) {
|
||
|
// update request url
|
||
|
report.request.url = toMetamaskUrl(report.request.url)
|
||
|
// update exception stack trace
|
||
|
report.exception.values.forEach(item => {
|
||
|
item.stacktrace.frames.forEach(frame => {
|
||
|
frame.filename = toMetamaskUrl(frame.filename)
|
||
|
})
|
||
|
})
|
||
|
}
|
||
|
|
||
|
function toMetamaskUrl(origUrl) {
|
||
|
const filePath = origUrl.split(location.origin)[1]
|
||
|
if (!filePath) return origUrl
|
||
|
const metamaskUrl = `metamask${filePath}`
|
||
|
return metamaskUrl
|
||
|
}
|