tweb/src/helpers/setWorkerProxy.ts

29 lines
683 B
TypeScript

/*
* https://github.com/morethanwords/tweb
* Copyright (C) 2019-2021 Eduard Kuzmenko
* https://github.com/morethanwords/tweb/blob/master/LICENSE
*/
export default function setWorkerProxy() {
// * hook worker constructor to set search parameters (test, debug, etc)
const workerHandler = {
construct(target: any, args: any) {
let url = args[0] + '';
if(url.indexOf('blob:') !== 0) {
url += location.search;
}
return new target(url);
}
};
[
Worker,
typeof(SharedWorker) !== 'undefined' && SharedWorker
].filter(Boolean).forEach((w) => {
window[w.name as any] = new Proxy(w, workerHandler);
});
}
setWorkerProxy();