Prettified all files.
This commit is contained in:
+35
-29
@@ -1,17 +1,16 @@
|
||||
var recordedErrors = new Map()
|
||||
|
||||
export default class Errors {
|
||||
|
||||
static countErrors() {
|
||||
let total = 0
|
||||
for(let error of recordedErrors.keys()) {
|
||||
for (let error of recordedErrors.keys()) {
|
||||
total += recordedErrors.get(error).size
|
||||
}
|
||||
return total
|
||||
}
|
||||
|
||||
static setStyle(element, styles) {
|
||||
for(let key in styles) {
|
||||
for (let key in styles) {
|
||||
element.style[key] = styles[key]
|
||||
}
|
||||
}
|
||||
@@ -20,8 +19,7 @@ export default class Errors {
|
||||
if (recordedErrors.has(error)) {
|
||||
let sources = recordedErrors.get(error)
|
||||
sources.add(source)
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
recordedErrors.set(error, new Set([source]))
|
||||
}
|
||||
}
|
||||
@@ -37,16 +35,19 @@ export default class Errors {
|
||||
this.setStyle(document.body, {
|
||||
border: '2px solid red'
|
||||
})
|
||||
this.setStyle(errors, {position: 'absolute',
|
||||
this.setStyle(errors, {
|
||||
position: 'absolute',
|
||||
top: '0px',
|
||||
padding: '8px',
|
||||
width: '100%',
|
||||
background: 'red',
|
||||
color: 'white'})
|
||||
color: 'white'
|
||||
})
|
||||
document.body.appendChild(errors)
|
||||
let counter = document.createElement('div')
|
||||
counter.setAttribute('id', 'runtime-errors-counter')
|
||||
this.setStyle(counter, {borderRadius: '50%',
|
||||
this.setStyle(counter, {
|
||||
borderRadius: '50%',
|
||||
width: '32px',
|
||||
height: '32px',
|
||||
background: 'white',
|
||||
@@ -54,16 +55,19 @@ export default class Errors {
|
||||
fontSize: '18px',
|
||||
textAlign: 'center',
|
||||
lineHeight: '32px',
|
||||
verticalAlign: 'middle'})
|
||||
verticalAlign: 'middle'
|
||||
})
|
||||
counter.innerHTML = '1'
|
||||
errors.appendChild(counter)
|
||||
|
||||
let header = document.createElement('div')
|
||||
this.setStyle(header, {position: 'absolute',
|
||||
this.setStyle(header, {
|
||||
position: 'absolute',
|
||||
top: '6px',
|
||||
left: '48px',
|
||||
height: '44px',
|
||||
fontSize: '32px'})
|
||||
fontSize: '32px'
|
||||
})
|
||||
header.innerHTML = 'Runtime Errors'
|
||||
errors.appendChild(header)
|
||||
errors.addEventListener('click', this.toggleErrors.bind(this))
|
||||
@@ -74,9 +78,9 @@ export default class Errors {
|
||||
|
||||
static expandErrors() {
|
||||
let errors = document.getElementById('runtime-errors')
|
||||
for(let error of recordedErrors.keys()) {
|
||||
for(var source of recordedErrors.get(error)) {
|
||||
if (typeof(source) == 'undefined') {
|
||||
for (let error of recordedErrors.keys()) {
|
||||
for (var source of recordedErrors.get(error)) {
|
||||
if (typeof source == 'undefined') {
|
||||
source = 'See console for details'
|
||||
return
|
||||
}
|
||||
@@ -93,9 +97,8 @@ export default class Errors {
|
||||
let errors = document.getElementById('runtime-errors')
|
||||
let infos = errors.querySelectorAll('.info')
|
||||
if (infos.length > 0) {
|
||||
infos.forEach((info) => errors.removeChild(info))
|
||||
}
|
||||
else {
|
||||
infos.forEach(info => errors.removeChild(info))
|
||||
} else {
|
||||
this.expandErrors()
|
||||
}
|
||||
}
|
||||
@@ -111,26 +114,29 @@ export default class Errors {
|
||||
|
||||
static registerGlobalErrorHandler() {
|
||||
// Register more informative error handler
|
||||
window.addEventListener('error', (event) => {
|
||||
// if (typeof(event.error) == 'undefined') {
|
||||
// console.info("Catched undefined error", event)
|
||||
// }
|
||||
this.appendError(event.error, event.filename)
|
||||
}, true)
|
||||
window.addEventListener(
|
||||
'error',
|
||||
event => {
|
||||
// if (typeof(event.error) == 'undefined') {
|
||||
// console.info("Catched undefined error", event)
|
||||
// }
|
||||
this.appendError(event.error, event.filename)
|
||||
},
|
||||
true
|
||||
)
|
||||
|
||||
document.addEventListener('DOMContentLoaded', (event) => {
|
||||
document.addEventListener('DOMContentLoaded', event => {
|
||||
this.showErrors()
|
||||
})
|
||||
}
|
||||
|
||||
static registerFrameAwaitErrors() {
|
||||
let iframes = document.getElementsByTagName('iframe')
|
||||
for(let i=0; i<iframes.length; i++) {
|
||||
for (let i = 0; i < iframes.length; i++) {
|
||||
let target = iframes[i]
|
||||
target.iframeTimeout = setTimeout(
|
||||
() => {
|
||||
this.appendError('Cannot load iframe', target.src)},
|
||||
frameErrorTimeout)
|
||||
target.iframeTimeout = setTimeout(() => {
|
||||
this.appendError('Cannot load iframe', target.src)
|
||||
}, frameErrorTimeout)
|
||||
target.onload = () => {
|
||||
clearTimeout(target.iframeTimeout)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user