Skip to content

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 у пула.