nifty-wallet/app/scripts/lib/setupRaven.js

58 lines
1.6 KiB
JavaScript
Raw Normal View History

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)
2018-03-23 18:45:58 -07:00
},
})
client.install()
2018-01-22 15:54:26 -08:00
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
}