mirror of
https://gitlab.com/PronounsPage/PronounsPage.git
synced 2025-09-25 14:09:03 -04:00
(sentry) add rejection error to $loadScript for better troubleshooting
This commit is contained in:
parent
0c2a5c7be1
commit
2366ccb2af
@ -79,31 +79,27 @@ export default ({ app, store }: { app: Vue, store: Store<RootState> }): void =>
|
||||
store.commit('showTranslationMode');
|
||||
}
|
||||
|
||||
Vue.prototype.$loadScript = (name: string, src: string, nonce: string | undefined = undefined) => {
|
||||
Vue.prototype.$loadScript = (name: string, src: string, nonce: string | undefined = undefined): Promise<void> => {
|
||||
if (!process.client || document.querySelectorAll(`script.${name}-script`).length > 0) {
|
||||
return new Promise((resolve) => {
|
||||
resolve(null);
|
||||
resolve();
|
||||
});
|
||||
}
|
||||
|
||||
let resolveFn: ((this: GlobalEventHandlers, event: Event) => any) | null = null;
|
||||
let rejectFn: OnErrorEventHandler = null;
|
||||
const promise = new Promise((resolve, reject) => {
|
||||
resolveFn = resolve;
|
||||
rejectFn = reject;
|
||||
return new Promise((resolve, reject) => {
|
||||
const script = document.createElement('script');
|
||||
script.setAttribute('src', src);
|
||||
if (nonce) {
|
||||
script.setAttribute('nonce', nonce);
|
||||
}
|
||||
script.classList.add(`${name}-script`);
|
||||
script.crossOrigin = 'true';
|
||||
script.addEventListener('load', () => resolve());
|
||||
script.addEventListener('error', (event) => {
|
||||
reject(new Error(`failed to load ${name} (${src}): ${typeof event === 'string' ? event : event.type}`));
|
||||
});
|
||||
document.body.appendChild(script);
|
||||
});
|
||||
|
||||
const s = document.createElement('script');
|
||||
s.setAttribute('src', src);
|
||||
if (nonce) {
|
||||
s.setAttribute('nonce', nonce);
|
||||
}
|
||||
s.classList.add(`${name}-script`);
|
||||
s.onload = resolveFn;
|
||||
s.onerror = rejectFn;
|
||||
document.body.appendChild(s);
|
||||
|
||||
return promise;
|
||||
};
|
||||
|
||||
try {
|
||||
|
Loading…
x
Reference in New Issue
Block a user