aboutsummaryrefslogtreecommitdiffstats
path: root/app/scripts/lib/setupRaven.js
diff options
context:
space:
mode:
authorDan <danjm.com@gmail.com>2018-05-24 02:33:15 +0800
committerDan <danjm.com@gmail.com>2018-05-24 02:33:15 +0800
commit440905125d77d1d5d72d1aceac2940925a8ac38f (patch)
treed5418384983f9de8092d2dfdd1ddddec2ffd555e /app/scripts/lib/setupRaven.js
parent3dec7cb52443b24d6a24f75434ee41a54f4cfd0b (diff)
parented01c6c8264a860cdc4248991839954bdf22e2ef (diff)
downloadtangerine-wallet-browser-440905125d77d1d5d72d1aceac2940925a8ac38f.tar
tangerine-wallet-browser-440905125d77d1d5d72d1aceac2940925a8ac38f.tar.gz
tangerine-wallet-browser-440905125d77d1d5d72d1aceac2940925a8ac38f.tar.bz2
tangerine-wallet-browser-440905125d77d1d5d72d1aceac2940925a8ac38f.tar.lz
tangerine-wallet-browser-440905125d77d1d5d72d1aceac2940925a8ac38f.tar.xz
tangerine-wallet-browser-440905125d77d1d5d72d1aceac2940925a8ac38f.tar.zst
tangerine-wallet-browser-440905125d77d1d5d72d1aceac2940925a8ac38f.zip
Merge branch 'develop' into i3725-refactor-send-component-
Diffstat (limited to 'app/scripts/lib/setupRaven.js')
-rw-r--r--app/scripts/lib/setupRaven.js42
1 files changed, 25 insertions, 17 deletions
diff --git a/app/scripts/lib/setupRaven.js b/app/scripts/lib/setupRaven.js
index b1b67f771..d164827ab 100644
--- a/app/scripts/lib/setupRaven.js
+++ b/app/scripts/lib/setupRaven.js
@@ -25,7 +25,7 @@ function setupRaven(opts) {
const report = opts.data
try {
// handle error-like non-error exceptions
- nonErrorException(report)
+ rewriteErrorLikeExceptions(report)
// simplify certain complex error messages (e.g. Ethjs)
simplifyErrorMessages(report)
// modify report urls
@@ -42,27 +42,35 @@ function setupRaven(opts) {
return Raven
}
-function nonErrorException(report) {
- // handle errors that lost their error-ness in serialization
- if (report.message.includes('Non-Error exception captured with keys: message')) {
- if (!(report.extra && report.extra.__serialized__)) return
- report.message = `Non-Error Exception: ${report.extra.__serialized__.message}`
- }
+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
+ report.message = rewriteFn(report.message)
+ // rewrite each exception message
if (report.exception && report.exception.values) {
report.exception.values.forEach(item => {
- let errorMessage = item.value
- // 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'
- }
- // finalize
- item.value = errorMessage
+ item.value = rewriteFn(item.value)
})
}
}