From 48d44b47d29bd9f1476cfd5b8b9cab5a768349b7 Mon Sep 17 00:00:00 2001 From: Georgii Savin <gsavin@devexperts.com> Date: Sun, 3 Dec 2023 12:53:02 +0300 Subject: [PATCH] feat(offscreen): fix offscreen init types --- src/chart/canvas/offscreen/init-offscreen.ts | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/chart/canvas/offscreen/init-offscreen.ts b/src/chart/canvas/offscreen/init-offscreen.ts index 7f857c8b..b606b492 100644 --- a/src/chart/canvas/offscreen/init-offscreen.ts +++ b/src/chart/canvas/offscreen/init-offscreen.ts @@ -4,10 +4,9 @@ import { isOffscreenCanvasModel } from './canvas-offscreen-wrapper'; import { OffscreenWorker } from './offscreen-worker'; export const isOffscreenWorkerAvailable = typeof Worker !== 'undefined'; -const OffscreenWorkerClass = isOffscreenWorkerAvailable - ? wrap<typeof OffscreenWorker>(new Worker(new URL('./offscreen-worker.js', import.meta.url))) - : // ? wrap<typeof OffscreenWorker>(new Worker(new URL('http://localhost:3000/offscreen-worker.js'))) - class {}; +const OffscreenWorkerClass = + isOffscreenWorkerAvailable && + wrap<typeof OffscreenWorker>(new Worker(new URL('./offscreen-worker.js', import.meta.url))); // create global worker instance, so every chart will use the same worker export let offscreenWorker: Remote<OffscreenWorker>; @@ -16,8 +15,11 @@ let canvasesIdxOffset = 0; export const initOffscreenWorker = async (canvases: CanvasModel[]): Promise<Remote<OffscreenWorker>> => { if (offscreenWorker === undefined) { - // @ts-ignore - offscreenWorker = await new OffscreenWorkerClass(); + if (typeof OffscreenWorkerClass === 'function') { + offscreenWorker = await new OffscreenWorkerClass(); + } else { + return Promise.reject('Offscreen worker is not available.'); + } } const startOffset = canvasesIdxOffset; canvasesIdxOffset += 10;