Worker Kit
0.3.1
2026-10-21
- Исправлено:
chunksоповещает подписчиков и в скрытой вкладке — вместоrequestAnimationFrame, который в фоновой вкладке не срабатывает, используется таймер 50 мс. - Изменено (исправление поведения): после
pool.terminate()вызовыrun()/call()/map()отклоняются сWorkerErrorиcode: 'POOL_TERMINATED', а не создают воркеры втихую; задачи, ожидавшие или выполнявшиеся в этот момент, отклоняются той же ошибкой. - Добавлено:
pool.restart()снова открывает закрытый пул. - Добавлено:
npm run test:browser— прогон Playwright демо-стендаcancel-yield.htmlв Chromium, Firefox и WebKit. - Проверено: при примерно 4 мс работы между вызовами
ctx.yield()цикл останавливается не позже чем через 2 следующих вызоваyield()в 100 из 100 попыток во всех трёх браузерах; одинyield()стоит около 20 мкс (Chromium, Firefox) и 0,3–0,4 мс (WebKit). Реализация не менялась. - Документация: правила
affinity, «как часто вызыватьyield()»,terminate()одиночного воркера и пула; README, сайт и AI-референс приведены в соответствие с кодом.
0.3.0
2026-10-21
- Исправлено:
chunksуuseWorker()/useSharedWorker()теперь реактивен. - Исправлено: пул восстанавливается после падения воркера — мёртвый слот удаляется, очередь продолжается на новых слотах.
- Добавлено: отмена задач в очереди пула и
hardCancelOnAbort(опция пула,RunOptions,WorkerMapOptions). - Добавлено:
ctx.yield()иctx.throwIfAborted()для кооперативной отмены в долгих циклах. - Добавлено:
onProgress/onChunkна уровне вызоваrun(). - Добавлено:
concurrency: 'parallel' | 'latest' | 'serial',isSupersededError(). - Добавлено:
defineWorkerOperations()и типизированныйcall(name, input). - Добавлено:
WorkerHandlerErrorсcode/details/cause. - Добавлено:
unwrap: 'shallow' | 'deep'и подсказка в dev про реактивные прокси. - Добавлено: опции
worker,immediateиrefresh()уuseWorkerComputed(). - Добавлено:
idleTimeoutиaffinity/affinityModeу пула.