worker-module
v0.0.2
Published
Run CommonJS modules as web workers.
Downloads
2
Maintainers
Readme
Worker Module
Usage
To be used in the browser with a module bundling system, like browserify.
var myModule = require('./my-worker'),
myWorker = require('worker-module')(myModule)();
Full example
my-worker.js:
module.exports = function(){
"use strict";
function onmessage(e) {
postMessage('Hello ' + e.data);
}
}
Main JS:
var myModule = require('./my-worker'),
createWorker = require('worker-module')(myModule),
worker1 = createWorker(),
worker2 = createWorker();
myWoker1.onmessage = function(e) {
console.log('Message received from worker 1: ' + e.data);
}
myWoker2.onmessage = function(e) {
console.log('Message received from the second worker: ' + e.data);
}
worker1.postMessage('World!');
worker2.postMessage('Something Else');
Why
Web workers need a URL to a script in order to run it. This results in an extra request to the server, and goes against our efforts to concatenate all scripts and work in a single, clean, modular way.
How it works
The script behind this is tiny, so take a look. It uses the blob method; a blob is created for the module, the url of which is passed to the worker constructor.
Compatibility
| IE | Edge | Firefox | Chrome | Safari | Android | |----|------|---------|--------|--------|---------| | 10 | Yes | Yes | Yes | Yes | 5 |
License
This project is licensed under the ISC License - see the LICENSE.md file for details