nuxt-testevia
Advanced tools
Comparing version
@@ -13,2 +13,5 @@ { | ||
"name": "Jakov Kanaet" | ||
}, | ||
{ | ||
"name": "Davor Teskera" | ||
} | ||
@@ -42,3 +45,3 @@ ], | ||
}, | ||
"version": "1.1.2" | ||
"version": "1.1.3" | ||
} |
import axios from 'axios' | ||
function whichBrowser(){ | ||
let ua = navigator.userAgent, tem, | ||
let ua = navigator.userAgent, tem, | ||
M= ua.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i) || []; | ||
@@ -22,5 +22,5 @@ if(/trident/i.test(M[1])){ | ||
if (navigator.appVersion.indexOf('Mac')!=-1) return 'MacOS'; | ||
if (navigator.appVersion.indexOf('X11')!=-1) return 'UNIX'; | ||
if (navigator.appVersion.indexOf('X11')!=-1) return 'UNIX/Linux/BSD'; | ||
if (navigator.appVersion.indexOf('Linux')!=-1) return 'Linux'; | ||
return 'Unknown' | ||
return 'Unknown OS' | ||
} | ||
@@ -32,8 +32,9 @@ | ||
return function errorHandlerMiddleware(err, req, res, next) { | ||
self.sendError(req.url, err, options) | ||
if (options.project && options.apiKey) self.sendError(req.url, err, options) | ||
return next(err); | ||
}; | ||
}, | ||
sendError: function(url, err, urls, options){ | ||
console.dir(err) | ||
let context = { | ||
@@ -47,19 +48,19 @@ project: options.project, | ||
if(err.message) context.data['error_message'] = err.message; | ||
if(err['code']) context.data['code'] = err['code']; | ||
if(err.message) context.data.error_message = err.message; | ||
if(err.code) context.data.code = err.code; | ||
let stack = '\n'; | ||
if(urls) stack = 'Urls: ' + urls.reverse().join('\n') + '\n'; | ||
if(urls) stack = 'Urls: ' + urls.reverse().join('\n') + '\n'; | ||
if(!process.server){ | ||
stack += '\nClient side\n\nDevice: '; | ||
if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|BB|PlayBook|IEMobile|Windows Phone|Kindle|Silk|Opera Mini/i.test(navigator.userAgent)) { | ||
stack += 'Desktop\n'; | ||
} else stack += 'Mobile\n' | ||
stack += 'Mobile\n'; | ||
} else stack += 'Desktop\n' | ||
try{ | ||
context.data['browser'] = whichBrowser() + ' - OS: ' + whichOS(); | ||
context.data.browser = whichBrowser() + ' - OS: ' + whichOS(); | ||
} catch(e){ | ||
} | ||
} else { | ||
@@ -73,5 +74,7 @@ stack += '\nServer side\n' | ||
context.data['stacktrace'] = stack; | ||
context.data.stacktrace = stack; | ||
axios.post('https://testevia.broj42.com/api/log-errors/', context, {headers: {'Authorization': options.apiKey}}) | ||
let testeviaUrl = options.apiUrl ? options.apiUrl : 'https://testevia.broj42.com/api/log-errors/'; | ||
axios.post(testeviaUrl, context, {headers: {'Authorization': options.apiKey}}) | ||
.catch(function(e){ | ||
@@ -81,2 +84,2 @@ // console.dir(e) | ||
} | ||
} | ||
} |
@@ -19,3 +19,3 @@ import Vue from 'vue' | ||
Vue.config.errorHandler = (err) => { | ||
if(!context.isDev || options.dev){ | ||
if(!context.isDev || options.debug){ | ||
console.log(err) | ||
@@ -25,4 +25,4 @@ errorHandler.sendError(process.server ? context.route.fullPath : window.location.href, err, testeviaUrls, options); | ||
} | ||
inject('sendError', (err, options) => errorHandler.sendError(err, options)) | ||
} | ||
} |
4552
3.41%101
4.12%