@vielzeug/workit
v3.0.4
Published
--- description: Thin, type-safe abstraction over Web Workers with task queuing, pooling, timeouts, and cancellation. package: workit category: workers keywords: [web-workers, pool, concurrency, offload, background, threading, timeout] related: [toolkit,
Readme
description: Thin, type-safe abstraction over Web Workers with task queuing, pooling, timeouts, and cancellation. package: workit category: workers keywords: [web-workers, pool, concurrency, offload, background, threading, timeout] related: [toolkit, stateit, eventit] exports: [createWorker, createTestWorker]
@vielzeug/workit
Thin, type-safe abstraction over Web Workers with task queuing, pooling, timeouts, and cancellation.
Package: @vielzeug/workit · Category: Workers
Key exports: createWorker, createTestWorker
When to use: Thin, type-safe abstraction over Web Workers with task queuing, pooling, timeouts, and cancellation.
Related: @vielzeug/toolkit · @vielzeug/stateit · @vielzeug/eventit
@vielzeug/workit is part of Vielzeug and ships as a zero-dependency TypeScript package with ESM+CJS output.
Installation
pnpm add @vielzeug/workit
npm install @vielzeug/workit
yarn add @vielzeug/workitQuick Start
import { createWorker } from '@vielzeug/workit';
const worker = createWorker<number[], number>((nums) => nums.reduce((sum, value) => sum + value, 0));
console.log(await worker.run([1, 2, 3, 4, 5])); // 15
worker.dispose();
const pool = createWorker<number, number>(
function fib(n): number {
return n <= 1 ? n : fib(n - 1) + fib(n - 2);
},
{ concurrency: 4, timeout: 5000 },
);
const results = await Promise.all([35, 36, 37, 38].map((n) => pool.run(n)));
pool.dispose();Documentation
License
MIT © Helmuth Saatkamp — part of the Vielzeug monorepo.
