From d22cf6e224695bcb4ee133c98e262eb7e70b2aca Mon Sep 17 00:00:00 2001 From: Valeriy Sidorenko Date: Fri, 17 Nov 2023 14:49:39 +0100 Subject: [PATCH] fix: ponyfill SharedWorker --- package-lock.json | 6 ++++++ package.json | 7 ++++--- .../webpack/worker/{web-worker.ts => web-worker.mts} | 5 ++++- 3 files changed, 14 insertions(+), 4 deletions(-) rename src/common/webpack/worker/{web-worker.ts => web-worker.mts} (86%) diff --git a/package-lock.json b/package-lock.json index fb10e56..c373554 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20,6 +20,7 @@ "@babel/preset-react": "^7.22.0", "@babel/preset-typescript": "^7.22.0", "@babel/runtime": "^7.22.0", + "@okikio/sharedworker": "^1.0.4", "@pmmmwh/react-refresh-webpack-plugin": "^0.5.11", "@sentry/webpack-plugin": "^2.7.1", "@statoscope/webpack-plugin": "^5.27.0", @@ -5253,6 +5254,11 @@ "node": ">= 8" } }, + "node_modules/@okikio/sharedworker": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@okikio/sharedworker/-/sharedworker-1.0.4.tgz", + "integrity": "sha512-QffYDNQ30RtrvmTVDu5WtNiwZRcrx+3Lkd02STsMXj3JBJMWmJkiQv+ruKgsLoijXVwqjW6LYuf41of7Ro/rfg==" + }, "node_modules/@pkgjs/parseargs": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", diff --git a/package.json b/package.json index fedf917..173b8f5 100644 --- a/package.json +++ b/package.json @@ -8,8 +8,8 @@ "types": "dist/index.d.ts", "exports": { "./worker": { - "types": "./dist/common/webpack/worker/web-worker.d.ts", - "default": "./dist/common/webpack/worker/web-worker.js" + "types": "./dist/common/webpack/worker/web-worker.d.mts", + "default": "./dist/common/webpack/worker/web-worker.mjs" }, ".": { "types": "./dist/index.d.ts", @@ -22,7 +22,7 @@ "./dist/index.d.ts" ], "worker": [ - "./dist/common/webpack/worker/web-worker.d.ts" + "./dist/common/webpack/worker/web-worker.d.mts" ] } }, @@ -68,6 +68,7 @@ "@babel/preset-react": "^7.22.0", "@babel/preset-typescript": "^7.22.0", "@babel/runtime": "^7.22.0", + "@okikio/sharedworker": "^1.0.4", "@pmmmwh/react-refresh-webpack-plugin": "^0.5.11", "@sentry/webpack-plugin": "^2.7.1", "@statoscope/webpack-plugin": "^5.27.0", diff --git a/src/common/webpack/worker/web-worker.ts b/src/common/webpack/worker/web-worker.mts similarity index 86% rename from src/common/webpack/worker/web-worker.ts rename to src/common/webpack/worker/web-worker.mts index c793839..f60703d 100644 --- a/src/common/webpack/worker/web-worker.ts +++ b/src/common/webpack/worker/web-worker.mts @@ -1,6 +1,9 @@ // eslint-disable-next-line camelcase declare let __webpack_public_path__: string; +// @ts-expect-error ts does not find types in @okikio/sharedworker/@types/index.d.ts +import {SharedWorkerPolyfill} from '@okikio/sharedworker'; + class WebWorker extends Worker { constructor(url: string | URL, options?: WorkerOptions) { const objectURL = generateWorkerLoader(url); @@ -9,7 +12,7 @@ class WebWorker extends Worker { } } -class SharedWebWorker extends SharedWorker { +class SharedWebWorker extends SharedWorkerPolyfill { constructor(url: string | URL, options?: string | WorkerOptions) { const objectURL = generateWorkerLoader(url); super(objectURL, options);