aboutsummaryrefslogtreecommitdiffstats
path: root/app/scripts
diff options
context:
space:
mode:
authorkumavis <aaron@kumavis.me>2018-05-01 07:05:01 +0800
committerkumavis <aaron@kumavis.me>2018-05-01 07:05:01 +0800
commit93a9ef284e527a4a7d26305be8abf455d938cca4 (patch)
tree814ea71d98721a51f645db097e36b9c39890edec /app/scripts
parent5ec631cad34a31a1268c990f0b952453ce97090b (diff)
downloadtangerine-wallet-browser-93a9ef284e527a4a7d26305be8abf455d938cca4.tar
tangerine-wallet-browser-93a9ef284e527a4a7d26305be8abf455d938cca4.tar.gz
tangerine-wallet-browser-93a9ef284e527a4a7d26305be8abf455d938cca4.tar.bz2
tangerine-wallet-browser-93a9ef284e527a4a7d26305be8abf455d938cca4.tar.lz
tangerine-wallet-browser-93a9ef284e527a4a7d26305be8abf455d938cca4.tar.xz
tangerine-wallet-browser-93a9ef284e527a4a7d26305be8abf455d938cca4.tar.zst
tangerine-wallet-browser-93a9ef284e527a4a7d26305be8abf455d938cca4.zip
sentry - add helper to fully rewrite all error messages
Diffstat (limited to 'app/scripts')
-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)
})
}
}