From 4dafdc7b80e35fb3bf12d47c28b11e4aec031a5c Mon Sep 17 00:00:00 2001 From: Giorgio Garasto Date: Wed, 20 Dec 2023 21:11:34 +0100 Subject: [PATCH] refactor: migrate workers to easy worker package --- bun.lockb | Bin 640074 -> 629938 bytes .../steganography-toolkit/package.json | 1 + .../containers/image/lsb/lsbWorkerClient.ts | 2 +- .../Cicada3301DyadsConcealer.tsx | 2 +- .../music/solresol/SolresolTranslator.tsx | 2 +- .../spectrogram/SpectrogramGenerator.tsx | 2 +- .../text/unicode/unicodeWorkerClient.ts | 2 +- .../src/hooks/useAudioExporter.tsx | 2 +- .../src/hooks/usePreprocessor.tsx | 2 +- .../src/workers/image/lsb.worker.ts | 2 +- .../workers/music/cicada-3301-dyads.worker.ts | 2 +- .../src/workers/music/exporter.worker.ts | 2 +- .../src/workers/music/solresol.worker.ts | 2 +- .../src/workers/music/spectrogram.worker.ts | 2 +- .../src/workers/preprocessor.worker.ts | 2 +- .../src/workers/text/unicode.worker.ts | 2 +- .../src/workers/utils.ts | 98 ------------------ 17 files changed, 15 insertions(+), 112 deletions(-) delete mode 100644 src/experiments/steganography-toolkit/src/workers/utils.ts diff --git a/bun.lockb b/bun.lockb index 1fffa7df0b4a815d604a034f0136dc70b9197ec0..15de918d1c043859ab4f84b21ac52dbd384db348 100755 GIT binary patch delta 102404 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≈O$Z5oICA{Qr!}RSFbmt1Oec_ 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 delta 110043 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¥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 C&S;4M diff --git a/src/experiments/steganography-toolkit/package.json b/src/experiments/steganography-toolkit/package.json index a7f8776..ee368d5 100644 --- a/src/experiments/steganography-toolkit/package.json +++ b/src/experiments/steganography-toolkit/package.json @@ -7,6 +7,7 @@ "build": "bun run vite build" }, "dependencies": { + "@easy-worker/core": "^0.1.0", "@emotion/react": "^11.11.1", "@emotion/styled": "^11.11.0", "@mui/icons-material": "^5.14.11", diff --git a/src/experiments/steganography-toolkit/src/containers/image/lsb/lsbWorkerClient.ts b/src/experiments/steganography-toolkit/src/containers/image/lsb/lsbWorkerClient.ts index 4946528..12612a8 100644 --- a/src/experiments/steganography-toolkit/src/containers/image/lsb/lsbWorkerClient.ts +++ b/src/experiments/steganography-toolkit/src/containers/image/lsb/lsbWorkerClient.ts @@ -1,4 +1,4 @@ -import { setupWorkerClient } from '../../../workers/utils'; +import { setupWorkerClient } from '@easy-worker/core'; import type { LSBWorker } from '../../../workers/image/lsb.worker'; export const lsbWorker = setupWorkerClient( diff --git a/src/experiments/steganography-toolkit/src/containers/music/cicada-3301-dyads/Cicada3301DyadsConcealer.tsx b/src/experiments/steganography-toolkit/src/containers/music/cicada-3301-dyads/Cicada3301DyadsConcealer.tsx index c44196a..4d77e8c 100644 --- a/src/experiments/steganography-toolkit/src/containers/music/cicada-3301-dyads/Cicada3301DyadsConcealer.tsx +++ b/src/experiments/steganography-toolkit/src/containers/music/cicada-3301-dyads/Cicada3301DyadsConcealer.tsx @@ -6,6 +6,7 @@ import React, { useEffect, } from 'react'; import { useDebounce } from 'use-debounce'; +import { setupWorkerClient } from '@easy-worker/core'; import { Button, Menu, MenuItem, Box, Grid } from '@mui/material'; import { ArrowDropUp as ArrowDropUpIcon, @@ -18,7 +19,6 @@ import Cicada3301DyadsForm, { } from '../../../components/music/cicada-3301-dyads/Cicada3301DyadsForm'; import Abc from '../../../components/music/Abc'; import Loader from '../../../components/Loader'; -import { setupWorkerClient } from '../../../workers/utils'; import type { Cicada3301DyadsWorker } from '../../../workers/music/cicada-3301-dyads.worker'; import useAudioExporter from '../../../hooks/useAudioExporter'; diff --git a/src/experiments/steganography-toolkit/src/containers/music/solresol/SolresolTranslator.tsx b/src/experiments/steganography-toolkit/src/containers/music/solresol/SolresolTranslator.tsx index 495d8ab..b8450c9 100644 --- a/src/experiments/steganography-toolkit/src/containers/music/solresol/SolresolTranslator.tsx +++ b/src/experiments/steganography-toolkit/src/containers/music/solresol/SolresolTranslator.tsx @@ -10,6 +10,7 @@ import React, { import { useSearchParams } from 'react-router-dom'; import { renderToString } from 'react-dom/server'; import { saveAs } from 'file-saver'; +import { setupWorkerClient } from '@easy-worker/core'; import { OutlinedInputProps, Unstable_Grid2 as Grid, @@ -34,7 +35,6 @@ import { ArrowDropDown as ArrowDropDownIcon, } from '@mui/icons-material'; import { useDebounce } from 'use-debounce'; -import { setupWorkerClient } from '../../../workers/utils'; import Page from '../../../components/Page'; import Loader from '../../../components/Loader'; import SolresolOutput, { diff --git a/src/experiments/steganography-toolkit/src/containers/music/spectrogram/SpectrogramGenerator.tsx b/src/experiments/steganography-toolkit/src/containers/music/spectrogram/SpectrogramGenerator.tsx index 4beda1c..8bcb06e 100644 --- a/src/experiments/steganography-toolkit/src/containers/music/spectrogram/SpectrogramGenerator.tsx +++ b/src/experiments/steganography-toolkit/src/containers/music/spectrogram/SpectrogramGenerator.tsx @@ -5,6 +5,7 @@ import React, { useEffect, startTransition, } from 'react'; +import { setupWorkerClient } from '@easy-worker/core'; import { useDebouncedCallback } from 'use-debounce'; import colormap from 'colormap'; import WaveSurfer from 'wavesurfer.js'; @@ -17,7 +18,6 @@ import { Download as DownloadIcon, } from '@mui/icons-material'; import Page from '../../../components/Page'; -import { setupWorkerClient } from '../../../workers/utils'; import type { GetImageSpectrogramProgressMessage, SpectrogramWorker, diff --git a/src/experiments/steganography-toolkit/src/containers/text/unicode/unicodeWorkerClient.ts b/src/experiments/steganography-toolkit/src/containers/text/unicode/unicodeWorkerClient.ts index 5a94def..d531118 100644 --- a/src/experiments/steganography-toolkit/src/containers/text/unicode/unicodeWorkerClient.ts +++ b/src/experiments/steganography-toolkit/src/containers/text/unicode/unicodeWorkerClient.ts @@ -1,4 +1,4 @@ -import { setupWorkerClient } from '../../../workers/utils'; +import { setupWorkerClient } from '@easy-worker/core'; import type { UnicodeWorker } from '../../../workers/text/unicode.worker'; export const unicodeWorker = setupWorkerClient( diff --git a/src/experiments/steganography-toolkit/src/hooks/useAudioExporter.tsx b/src/experiments/steganography-toolkit/src/hooks/useAudioExporter.tsx index 51db176..52632a5 100644 --- a/src/experiments/steganography-toolkit/src/hooks/useAudioExporter.tsx +++ b/src/experiments/steganography-toolkit/src/hooks/useAudioExporter.tsx @@ -8,8 +8,8 @@ import { } from 'react'; import ABCJS from 'abcjs'; import { saveAs } from 'file-saver'; +import { setupWorkerClient } from '@easy-worker/core'; import { AbcProps } from '../components/music/Abc'; -import { setupWorkerClient } from '../workers/utils'; import type { EncodeMp3Options, MusicExporterWorker, diff --git a/src/experiments/steganography-toolkit/src/hooks/usePreprocessor.tsx b/src/experiments/steganography-toolkit/src/hooks/usePreprocessor.tsx index 004c10d..554ca3d 100644 --- a/src/experiments/steganography-toolkit/src/hooks/usePreprocessor.tsx +++ b/src/experiments/steganography-toolkit/src/hooks/usePreprocessor.tsx @@ -1,5 +1,5 @@ import { useCallback } from 'react'; -import { setupWorkerClient } from '../workers/utils'; +import { setupWorkerClient } from '@easy-worker/core'; import type { PreprocessorWorker } from '../workers/preprocessor.worker'; const preprocessorWorker = setupWorkerClient( diff --git a/src/experiments/steganography-toolkit/src/workers/image/lsb.worker.ts b/src/experiments/steganography-toolkit/src/workers/image/lsb.worker.ts index 9e434e1..f898697 100644 --- a/src/experiments/steganography-toolkit/src/workers/image/lsb.worker.ts +++ b/src/experiments/steganography-toolkit/src/workers/image/lsb.worker.ts @@ -1,4 +1,4 @@ -import { setupWorkerServer } from '../utils'; +import { setupWorkerServer } from '@easy-worker/core'; export interface EncodeOptions { inputImage: ImageData; diff --git a/src/experiments/steganography-toolkit/src/workers/music/cicada-3301-dyads.worker.ts b/src/experiments/steganography-toolkit/src/workers/music/cicada-3301-dyads.worker.ts index 3eb8145..7a77dc5 100644 --- a/src/experiments/steganography-toolkit/src/workers/music/cicada-3301-dyads.worker.ts +++ b/src/experiments/steganography-toolkit/src/workers/music/cicada-3301-dyads.worker.ts @@ -1,6 +1,6 @@ +import { setupWorkerServer } from '@easy-worker/core'; import { nextPrime } from '../../helpers'; import letterNotesMapping from '../../static/cicada-3301-dyads/letterNotesMapping.json'; -import { setupWorkerServer } from '../utils'; import type { Language, Cicada3301DyadsFormValue, diff --git a/src/experiments/steganography-toolkit/src/workers/music/exporter.worker.ts b/src/experiments/steganography-toolkit/src/workers/music/exporter.worker.ts index f9bb55a..adaf9e4 100644 --- a/src/experiments/steganography-toolkit/src/workers/music/exporter.worker.ts +++ b/src/experiments/steganography-toolkit/src/workers/music/exporter.worker.ts @@ -2,7 +2,7 @@ import { Mp3Encoder } from 'lamejs'; import MPEGMode from 'lamejs/src/js/MPEGMode'; import Lame from 'lamejs/src/js/Lame'; import BitStream from 'lamejs/src/js/BitStream'; -import { setupWorkerServer } from '../utils'; +import { setupWorkerServer } from '@easy-worker/core'; // lamejs is buggy and refers to these modules globally instead of importing them (globalThis as any).MPEGMode = MPEGMode; diff --git a/src/experiments/steganography-toolkit/src/workers/music/solresol.worker.ts b/src/experiments/steganography-toolkit/src/workers/music/solresol.worker.ts index 1e0a947..8ff4e71 100644 --- a/src/experiments/steganography-toolkit/src/workers/music/solresol.worker.ts +++ b/src/experiments/steganography-toolkit/src/workers/music/solresol.worker.ts @@ -1,7 +1,7 @@ import Fuse from 'fuse.js'; import nlp from 'compromise'; +import { setupWorkerServer } from '@easy-worker/core'; import solresolDictionary from '../../static/solresol/dictionary.json'; -import { setupWorkerServer } from '../utils'; import type { Verbs } from 'compromise/types/view/three'; import type { PickMatching } from '../../helpers'; diff --git a/src/experiments/steganography-toolkit/src/workers/music/spectrogram.worker.ts b/src/experiments/steganography-toolkit/src/workers/music/spectrogram.worker.ts index 579c93b..c849bff 100644 --- a/src/experiments/steganography-toolkit/src/workers/music/spectrogram.worker.ts +++ b/src/experiments/steganography-toolkit/src/workers/music/spectrogram.worker.ts @@ -1,4 +1,4 @@ -import { setupWorkerServer } from '../utils'; +import { setupWorkerServer } from '@easy-worker/core'; export interface GetImageSpectrogramOptions { imageData: ImageData; diff --git a/src/experiments/steganography-toolkit/src/workers/preprocessor.worker.ts b/src/experiments/steganography-toolkit/src/workers/preprocessor.worker.ts index 1b1e41a..e0d6d93 100644 --- a/src/experiments/steganography-toolkit/src/workers/preprocessor.worker.ts +++ b/src/experiments/steganography-toolkit/src/workers/preprocessor.worker.ts @@ -1,4 +1,4 @@ -import { setupWorkerServer } from './utils'; +import { setupWorkerServer } from '@easy-worker/core'; export type EncryptionAlgorithm = 'AES-CTR' | 'AES-CBC' | 'AES-GCM'; diff --git a/src/experiments/steganography-toolkit/src/workers/text/unicode.worker.ts b/src/experiments/steganography-toolkit/src/workers/text/unicode.worker.ts index 20c0452..969cce9 100644 --- a/src/experiments/steganography-toolkit/src/workers/text/unicode.worker.ts +++ b/src/experiments/steganography-toolkit/src/workers/text/unicode.worker.ts @@ -1,4 +1,4 @@ -import { setupWorkerServer } from '../utils'; +import { setupWorkerServer } from '@easy-worker/core'; export interface DecodedTextResult { originalText: string; diff --git a/src/experiments/steganography-toolkit/src/workers/utils.ts b/src/experiments/steganography-toolkit/src/workers/utils.ts deleted file mode 100644 index b2e1908..0000000 --- a/src/experiments/steganography-toolkit/src/workers/utils.ts +++ /dev/null @@ -1,98 +0,0 @@ -export type PromisifiedObject = { - [K in keyof T]: T[K] extends (...args: infer A) => infer R - ? (...args: A) => Promise> - : T[K]; -}; - -export type PromisifiedWorker = Worker & - PromisifiedObject>; - -export const setupWorkerClient = >( - worker: Worker, - methods: (keyof U)[], - timeout = 30000, -): PromisifiedWorker => { - const eventsQueueMap: Record< - string, - { resolve: Function; reject: Function } - > = {}; - - worker.addEventListener('message', event => { - const handler = eventsQueueMap[event.data.id]; - if (!handler) { - return; - } - if (event.data.status === 'fulfilled') { - handler.resolve(event.data.value); - } else { - handler.reject( - Object.assign(new Error(event.data.reason.name), event.data.reason), - ); - } - }); - - return Object.assign( - worker, - Object.fromEntries( - methods.map(method => [ - method, - (...args: unknown[]) => - new Promise((resolve, reject) => { - const id = crypto.randomUUID(); - const handle = setTimeout(() => { - delete eventsQueueMap[id]; - reject(new Error('Timeout')); - }, timeout); - const wrappedResolve: typeof resolve = (...args) => { - clearTimeout(handle); - return resolve(...args); - }; - eventsQueueMap[id] = { resolve: wrappedResolve, reject }; - worker.postMessage({ - id, - method, - args, - }); - }), - ]), - ), - ) as PromisifiedWorker; -}; - -export const setupWorkerServer = >( - methods: U, -) => { - self.addEventListener('message', async event => { - const { id, method, args = [] } = event.data; - if (!id || !Object.keys(methods as {}).includes(method)) { - return; - } - try { - const result = await (methods[method as keyof U] as Function)(...args); - self.postMessage({ - id, - status: 'fulfilled', - value: result, - }); - } catch (error) { - self.postMessage({ - id, - status: 'rejected', - reason: - error instanceof Error - ? { - name: error.name, - message: error.message, - stack: error.stack, - cause: error.cause, - } - : { - name: 'UnknownError', - message: 'Unknown error', - }, - }); - } - }); - - return methods; -};