This helps to make library that uses WebWorker/fork as one simple file.
Install
npm:
npm install single-file-worker
bower:
bower install single-file-worker
Usage
fork (node.js / electron / nw.js):
var SingleFileWorker = require('single-file-worker');
function workerRoutine() {
process.on('message', function(message) {process.send(message + 1)});
}
function clientRoutine(workerMaker) {
var worker = workerMaker();
worker.on('message', function(message) {
console.log(message);
});
worker.send(1);
}
SingleFileWorker.fork(workerRoutine, clientRoutine, SingleFileWorker.scriptFilenameFromError(new Error()));
WebWorker (browsers / electron / nw.js):
<script src="single-file-worker.js"></script>
<script>
var workerCode = "self.addEventListener('message', function(event) {self.postMessage(event.data + 1)});";
var runWorker;
function clientRoutine(workerMaker) {
var worker = workerMaker();
worker.addEventListener('message', function(event) {
console.log(event.data);
});
worker.postMessage(1);
}
SingleFileWorker.webworker(workerCode, clientRoutine);
</script>
License
This is released under MIT License.