Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

artichokie

sapphi-red2.7kMIT0.3.1TypeScript support: included

Mutual callable worker thread pool with fallback.

worker threads, thread pool

readme

artichokie

npm version CI MIT License

Okie dokie artichokie

Mutual callable worker thread pool with fallback. Based on okie.

Features

  • worker pool
  • calling functions in the main thread from the worker
  • falling back to run the code in the main thread

Examples

const parent = async () => 1
const syncParent = () => 2
const worker = new Worker(
  () => async () => {
    return (await parent()) + syncParent() + 1
  },
  {
    parentFunctions: { parent, syncParent }
  }
)

const result = await worker.run()
console.log(result) // 4

worker.stop()
const infSymbol = Symbol('inf')
const isInf = async (n: number | symbol) => n === infSymbol

const worker = new WorkerWithFallback(
  () => async (n: number | symbol) => {
    return await isInf(n) ? Infinity : 0
  },
  {
    parentFunctions: { isInf },
    shouldUseFake(n) {
      // symbol cannot be passed to a worker
      // fallback to run the code in main thread in that case
      return typeof n === 'symbol'
    }
  }
)

const results = await Promise.all([
  worker.run(1),
  worker.run(infSymbol)
])

console.log(results) // [0, Infinity]

worker.stop()