1.0.2 • Published 1 year ago

worker-man v1.0.2

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

👷‍♂️ 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);

3. Save the return value of `createWorker`, which will be an `async` function that you can use anywhere in your codebase.

> main.js
```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.

1.0.2

1 year ago

1.0.1

1 year ago

0.2.0

1 year ago