diff options
author | toasted-nutbread <toasted-nutbread@users.noreply.github.com> | 2019-10-08 21:33:10 -0400 |
---|---|---|
committer | toasted-nutbread <toasted-nutbread@users.noreply.github.com> | 2019-10-08 22:38:05 -0400 |
commit | c5d6b9452d1bfa51a5fef9a19082d115ef180a9b (patch) | |
tree | 17f9a1bdd2b09937b776127a1764a3c9067082cf /ext/mixed/js/extension.js | |
parent | 6a6e200ef947b92576351e39fc30b6653a576d70 (diff) |
Create utility function for logging errors
Diffstat (limited to 'ext/mixed/js/extension.js')
-rw-r--r-- | ext/mixed/js/extension.js | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/ext/mixed/js/extension.js b/ext/mixed/js/extension.js index 5e925124..861e52a5 100644 --- a/ext/mixed/js/extension.js +++ b/ext/mixed/js/extension.js @@ -68,6 +68,24 @@ function jsonToError(jsonError) { return error; } +function logError(error, alert) { + const manifest = chrome.runtime.getManifest(); + let errorMessage = `${manifest.name} v${manifest.version} has encountered an error.\n`; + errorMessage += `Originating URL: ${window.location.href}\n`; + + const errorString = `${error.toString ? error.toString() : error}`; + const stack = `${error.stack}`.trimRight(); + errorMessage += (!stack.startsWith(errorString) ? `${errorString}\n${stack}` : `${stack}`); + + errorMessage += '\n\nIssues can be reported at https://github.com/FooSoft/yomichan/issues'; + + console.error(errorMessage); + + if (alert) { + window.alert(`${errorString}\n\nCheck the developer console for more details.`); + } +} + const EXTENSION_IS_BROWSER_EDGE = ( extensionHasBrowser() && (!extensionHasChrome() || (typeof chrome.runtime === 'undefined' && typeof browser.runtime !== 'undefined')) |