fix: error handling

This commit is contained in:
Xmader 2020-11-30 14:23:24 -05:00
parent f1412cdffa
commit baf187ee46
No known key found for this signature in database
GPG Key ID: A20B97FB9EB730E4
1 changed files with 24 additions and 20 deletions

View File

@ -14,31 +14,35 @@ const TYPE_REG = /id=(\d+)&type=(img|mp3|midi)/
const magicHookConstr = (() => { const magicHookConstr = (() => {
const l = {} const l = {}
hookNative(document.body, 'append', (fn) => { try {
return function (...nodes: Node[]) { hookNative(document.body, 'append', (fn) => {
fn.call(this, ...nodes) return function (...nodes: Node[]) {
fn.call(this, ...nodes)
if (nodes[0].nodeName === 'IFRAME') { if (nodes[0].nodeName === 'IFRAME') {
const iframe = nodes[0] as HTMLIFrameElement const iframe = nodes[0] as HTMLIFrameElement
const w = iframe.contentWindow as Window const w = iframe.contentWindow as Window
hookNative(w, 'fetch', (fn) => { hookNative(w, 'fetch', (fn) => {
return function (url, init) { return function (url, init) {
const token = init?.headers?.Authorization const token = init?.headers?.Authorization
if (typeof url === 'string' && token) { if (typeof url === 'string' && token) {
const m = url.match(TYPE_REG) const m = url.match(TYPE_REG)
if (m) { if (m) {
const type = m[2] const type = m[2]
// eslint-disable-next-line no-unused-expressions // eslint-disable-next-line no-unused-expressions
l[type]?.(token) l[type]?.(token)
}
} }
return fn(url, init)
} }
return fn(url, init) })
} }
})
} }
} })
}) } catch (err) {
console.error(err)
}
return async (type: FileType) => { return async (type: FileType) => {
return new Promise<string>((resolve) => { return new Promise<string>((resolve) => {