aboutsummaryrefslogtreecommitdiffstats
path: root/app/scripts/lib/setupRaven.js
diff options
context:
space:
mode:
authorkumavis <aaron@kumavis.me>2018-10-20 14:22:50 +0800
committerkumavis <aaron@kumavis.me>2018-10-20 14:22:50 +0800
commite3fda83ab209af7836ba93bfaba215c271d73e8a (patch)
tree6d6da4ab79a36269d1580e74bea84dfbb0ceb68a /app/scripts/lib/setupRaven.js
parent31175dcb24d836650469775a50289bfc131bcd18 (diff)
downloadtangerine-wallet-browser-e3fda83ab209af7836ba93bfaba215c271d73e8a.tar
tangerine-wallet-browser-e3fda83ab209af7836ba93bfaba215c271d73e8a.tar.gz
tangerine-wallet-browser-e3fda83ab209af7836ba93bfaba215c271d73e8a.tar.bz2
tangerine-wallet-browser-e3fda83ab209af7836ba93bfaba215c271d73e8a.tar.lz
tangerine-wallet-browser-e3fda83ab209af7836ba93bfaba215c271d73e8a.tar.xz
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.js101
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
-}