{"bugs":{"url":"https://github.com/lvisei/web-worker-helper/issues"},"dist":{"shasum":"b70ed3c3b1669904295898f8ae48489f786cbd36","tarball":"https://registry.npmjs.org/web-worker-helper/-/web-worker-helper-0.0.4-beta.2.tgz","fileCount":101,"integrity":"sha512-o4rScisYrX2mdIqoSOsAmQagZrTaw1amsxP5pkJmHB945DSxE0h4Pqo2N7yXLVIrKkksKYgoamdS9g6XjpxaRw==","signatures":[{"sig":"MEYCIQCqEeDCNAM/0khtZyfohGkCnrkOm9tsEl3orLeqh5G6JwIhAIKfGen6DP25nQN1wGYPAt78GZ6TOkHd0dRN6TSWJAGA","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":410160},"main":"dist/lib/index.js","name":"web-worker-helper","_from":"file:web-worker-helper-0.0.4-beta.2.tgz","types":"dist/lib/index.d.ts","unpkg":"dist/umd/web-worker-helper.js","module":"dist/esm/index.js","readme":"# web-worker-helper\n\n> Forked from [@loaders.gl/worker-utils](https://github.com/visgl/loaders.gl/blob/master/modules/worker-utils/README.md) implementation\n\n## Time consuming task\n\n```ts\n// fibonacci.js\nexport function fibonacci(n: number) {\n  let n1 = 1,\n    n2 = 1,\n    sum = 1;\n  for (let i = 3; i <= n; i += 1) {\n    sum = n1 + n2;\n    n1 = n2;\n    n2 = sum;\n  }\n  return sum;\n}\n```\n\n## Creating workers for time-consuming task\n\n```ts\n// fibonacci.worker.js\nimport { createWorker } from 'web-worker-helper';\nimport { fibonacci } from './fibonacci';\n\ncreateWorker(async (data: number) => {\n  const result = fibonacci(data);\n  return result;\n});\n```\n\n## Bundle worker\n\n## Main thread call worker\n\n1. parse worker\n\n```ts\nimport { WorkerFarm } from 'web-worker-helper';\n\nexport async function parseWorker(\n  workerName: string,\n  data: any,\n  options?: Record<string, any> = { maxConcurrency: 3, reuseWorkers: true }\n) {\n  const url = getWorkerURL({ name: workerName });\n  // const source = `fibonacci codeString`\n  const workerFarm = WorkerFarm.getWorkerFarm({\n    maxConcurrency: options.maxConcurrency,\n    reuseWorkers: options.reuseWorkers,\n  });\n  const workerPool = workerFarm.getWorkerPool({ name: workerName, url });\n  // const workerPool = workerFarm.getWorkerPool({ name: workerName, source });\n  const job = await workerPool.startJob(workerName, (job, type, data) => job.done(data));\n\n  job.postMessage('process', { input: data });\n\n  const result = await job.result;\n  return result.result;\n}\n```\n\n2. Call time-consuming task\n\n```ts\nimport { parseWorker } from './parse-worker';\nimport { fibonacci } from './fibonacci';\n\nexport async function starFibonacci(iskorker, data) {\n  if (iskorker) {\n    const result = await parseWorker('fibonacci-worker', data, {});\n    return result;\n  }\n\n  const result = await fibonacci(data);\n  return result;\n}\n```\n","engines":{"node":">=18","pnpm":">=8"},"license":"MIT","scripts":{"lint":"eslint src __tests__ --ext .js,.ts","build":"pnpm clean && pnpm run '/^build:.*/'","clean":"rimraf dist","typedoc":"typedoc","lint-fix":"eslint src __tests__ --ext .js,.ts --fix","prettier":"prettier src __tests__ -c -w","build:cjs":"tsc -p tsconfig.json --declaration --module CommonJS --outDir dist/lib","build:esm":"tsc -p tsconfig.json --declaration --module ESNext --outDir dist/esm","build:umd":"rollup -c scripts/rollup.config.mjs","changeset":"changeset add","publish-package":"pnpm build && changeset publish","publish-version":"changeset version && node scripts/sync-version.mjs"},"_npmUser":{"name":"lvisei","email":"yunji.me@outlook.com"},"homepage":"https://github.com/lvisei/web-worker-helper#readme","keywords":["worker","process","thread"],"_resolved":"/tmp/e467a7c8378d740111a9a15e5dbe0c9e/web-worker-helper-0.0.4-beta.2.tgz","_integrity":"sha512-o4rScisYrX2mdIqoSOsAmQagZrTaw1amsxP5pkJmHB945DSxE0h4Pqo2N7yXLVIrKkksKYgoamdS9g6XjpxaRw==","repository":{"url":"git+https://github.com/lvisei/web-worker-helper.git","type":"git"},"_npmVersion":"10.5.0","description":"Utilities for running tasks on worker threads","directories":{},"maintainers":[{"name":"lvisei","email":"yunji.me@outlook.com"}],"sideEffects":true,"_nodeVersion":"18.20.0","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tape":"^5.3.1","husky":"^7.0.0","tslib":"^2.6.2","eslint":"^8.0.0","rimraf":"^3.0.2","rollup":"^4.14.0","typedoc":"^0.25.12","prettier":"^2.4.1","typescript":"^5.4.4","lint-staged":"^11.2.3","tape-promise":"^4.0.0","@changesets/cli":"^2.27.1","@rollup/plugin-terser":"^0.4.4","eslint-config-prettier":"^8.3.0","eslint-plugin-prettier":"^4.0.0","@rollup/plugin-typescript":"^11.1.6","@typescript-eslint/parser":"^5.0.0","@changesets/changelog-github":"^0.5.0","@typescript-eslint/eslint-plugin":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/web-worker-helper_0.0.4-beta.2_1712456232545_0.7056942523684389","host":"s3://npm-registry-packages"},"_id":"web-worker-helper@0.0.4-beta.2","version":"0.0.4-beta.2"}