diff options
author | kumavis <aaron@kumavis.me> | 2018-10-20 14:22:50 +0800 |
---|---|---|
committer | kumavis <aaron@kumavis.me> | 2018-10-20 14:22:50 +0800 |
commit | e3fda83ab209af7836ba93bfaba215c271d73e8a (patch) | |
tree | 6d6da4ab79a36269d1580e74bea84dfbb0ceb68a /app/scripts/lib/setupRaven.js | |
parent | 31175dcb24d836650469775a50289bfc131bcd18 (diff) | |
download | tangerine-wallet-browser-e3fda83ab209af7836ba93bfaba215c271d73e8a.tar.gz tangerine-wallet-browser-e3fda83ab209af7836ba93bfaba215c271d73e8a.tar.zst tangerine-wallet-browser-e3fda83ab209af7836ba93bfaba215c271d73e8a.zip |
sentry - replace raven-js with sentry/browser
Diffstat (limited to 'app/scripts/lib/setupRaven.js')
-rw-r--r-- | app/scripts/lib/setupRaven.js | 101 |
1 files changed, 0 insertions, 101 deletions
diff --git a/app/scripts/lib/setupRaven.js b/app/scripts/lib/setupRaven.js deleted file mode 100644 index e1dc4bb8b..000000000 --- a/app/scripts/lib/setupRaven.js +++ /dev/null @@ -1,101 +0,0 @@ -const Raven = require('raven-js') -const METAMASK_DEBUG = process.env.METAMASK_DEBUG -const extractEthjsErrorMessage = require('./extractEthjsErrorMessage') -const PROD = 'https://3567c198f8a8412082d32655da2961d0@sentry.io/273505' -const DEV = 'https://f59f3dd640d2429d9d0e2445a87ea8e1@sentry.io/273496' - -module.exports = setupRaven - -// Setup raven / sentry remote error reporting -function setupRaven (opts) { - const { release } = opts - let ravenTarget - // detect brave - const isBrave = Boolean(window.chrome.ipcRenderer) - - 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 - - try { - // mark browser as brave or not - report.extra.isBrave = isBrave - // handle error-like non-error exceptions - rewriteErrorLikeExceptions(report) - // simplify certain complex error messages (e.g. Ethjs) - simplifyErrorMessages(report) - // modify report urls - rewriteReportUrls(report) - } catch (err) { - console.warn(err) - } - // make request normally - client._makeRequest(opts) - }, - }) - client.install() - - return Raven -} - -function rewriteErrorLikeExceptions (report) { - // handle errors that lost their error-ness in serialization (e.g. dnode) - rewriteErrorMessages(report, (errorMessage) => { - if (!errorMessage.includes('Non-Error exception captured with keys:')) return errorMessage - if (!(report.extra && report.extra.__serialized__ && report.extra.__serialized__.message)) return errorMessage - return `Non-Error Exception: ${report.extra.__serialized__.message}` - }) -} - -function simplifyErrorMessages (report) { - rewriteErrorMessages(report, (errorMessage) => { - // simplify ethjs error messages - errorMessage = extractEthjsErrorMessage(errorMessage) - // simplify 'Transaction Failed: known transaction' - if (errorMessage.indexOf('Transaction Failed: known transaction') === 0) { - // cut the hash from the error message - errorMessage = 'Transaction Failed: known transaction' - } - return errorMessage - }) -} - -function rewriteErrorMessages (report, rewriteFn) { - // rewrite top level message - if (typeof report.message === 'string') report.message = rewriteFn(report.message) - // rewrite each exception message - if (report.exception && report.exception.values) { - report.exception.values.forEach(item => { - if (typeof item.value === 'string') item.value = rewriteFn(item.value) - }) - } -} - -function rewriteReportUrls (report) { - // update request url - report.request.url = toMetamaskUrl(report.request.url) - // update exception stack trace - if (report.exception && report.exception.values) { - 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 -} |