worker-man
TypeScript icon, indicating that this package has built-in type declarations

1.0.2 • Public • Published

👷‍♂️ Worker Man

NPM Version ESLint Check GitHub license npm bundle size

https://nodei.co/npm/worker-man.png?downloads=true&downloadRank=true&stars=true

worker-man is a lightweight and easy-to-use package for distributing CPU-intensive operations in Node.js.

This package let's you convert a CPU heavy functions into an async functions, which will run in a worker thread on invocation, it's that simple

Installation

# If you use npm:
npm install worker-man

# Or if you use Yarn:
yarn add worker-man

Online Playground

Use the button below to play with a small demo project to help familiarize with Worker Man.

View on Codesandbox

Usage

Here's a basic example of how to use worker-man.

  1. Create a new file and define your CPU intensive function in it.
  2. Call createWorker with the __filename as first argument and the function you have defined as the second argument.

fibonacci-worker.js

import { createWorker } from 'worker-man';

 // A CPU intensive fibonacci implementation
 export function cpuHeavyFindFibonacci(n){
   if (n < 2) return 1;
   else return cpuHeavyFindFibonacci(n - 2) + cpuHeavyFindFibonacci(n - 1);
 }

 export const findFibonacci = createWorker(__filename, cpuHeavyFindFibonacci);
  1. Save the return value of createWorker, which will be an async function that you can use anywhere in your codebase.

main.js

import { findFibonacci } from './fibonacci-worker.ts'
const main = async () => {
 const fibonacci = await findFibonacci(200); // Here `findFibonacci` will be run in a worker thread
 console.log(fibonacci);
}

In the above example findFibonacci will be run in a worker thread

API

createWorker(filename, workerFunction)

Returns a function that can be used to execute the workerFunction in a separate thread.

Arguments

  • filename (string): The absolute path of the file that creates the worker.
  • workerFunction (function): The function to be executed in the worker thread.

Return value

A function that returns a Promise which resolves to the result of workerFunction.

Author

Aromal Anil

License

Worker Man is MIT licensed.

Package Sidebar

Install

npm i worker-man

Weekly Downloads

1

Version

1.0.2

License

MIT

Unpacked Size

8.9 kB

Total Files

5

Last publish

Collaborators

  • aromalanil