1
0
Fork 0
freesewing/sites/shared/hooks/use-bugsnag.mjs
2023-03-26 06:51:11 +02:00

36 lines
829 B
JavaScript

/*
* Dumb method to generate a unique (enough) ID for submissions to bugsnag
*/
function createErrorId() {
let result = ''
const characters = 'abcdefghijklmnopqrstuvwxyz0123456789'
const charactersLength = characters.length
for (let s = 0; s < 3; s++) {
for (let i = 0; i < 4; i++) {
result += characters.charAt(Math.floor(Math.random() * charactersLength))
}
if (s < 2) result += '-'
}
return result
}
/*
* The hook
*/
export function useBugsnag(bugsnag) {
// If we don't use bugsnag, return a placeholder method
if (!bugsnag) return () => false
const reportError = (err) => {
const id = createErrorId()
bugsnag.notify(err, (evt) => {
evt.setUser(account.username ? account.username : '__visitor')
evt.context = id
})
return id
}
return reportError
}