inline-worker

utility to create a universal WebWorker from a function

Usage no npm install needed!

<script type="module">
  import inlineWorker from 'https://cdn.skypack.dev/inline-worker';
</script>

README

inline-worker

Build Status NPM Version License

JavaScript utility to create a universal WebWorker from a function

Installation

$ npm install inline-worker

API

InlineWorker

  • constructor(func: function, [ self: object ]): Worker | InlineWorker

Example

const InlineWorker = require("inline-worker");

let self = {};
let worker = new InlineWorker(function(self) {
  self.onmessage = function(e) {
    postMessage(self.bark(e.data)); // (2) hello!!
  };

  // worker internal function
  self.bark = function(msg) {
    return msg + "!!";
  };
}, self);

worker.onmessage = function(e) {
  console.log(e.data + "!!"); // (3) hello!!!!
};

worker.postMessage("hello"); // (1)

What is worker instance?

if (global.window === global) {
  assert(worker instanceof Worker); // in the borwser
} else {
  assert(worker instanceof InlineWorker); // in the node.js
}

You can test worker internal functions via self.

assert(self.bark("bye") === "bye!!");

License

MIT