conglomerate-worker
v2.1.0
Published
Web Worker that can require() in the browser with browserify & webpack
Downloads
1
Readme
conglomerate-worker
Example
// main.js
'use strict'
const conglomerateWorker = require('conglomerate-worker')
conglomerateWorker(require('./worker'))
.then(function (worker) {
worker.addEventListener('message', function (event) {
expect(event.data).toEqual('pong')
done()
})
worker.postMessage('ping')
})
// worker.js
'use strict'
module.exports = function (worker) {
worker.addEventListener('message', function (event) {
if (event.data === 'ping') {
worker.postMessage('pong')
}
})
}
Documentation
source
Launch a Web Worker that can require()
in the browser with browserify &
webpack. For browsers that don't support Web Workers or construction of Web
Workers from blob urls conglomerate-worker
falls back to a minimal Web Worker
mock. The mock runs on the main thread, so you don't get any of the
multithreading benefits of Web Worker. However, it should be "good enough" for
the less-compliant browsers.
Parameters
worker
object module. The module should export its worker code inmodule.exports
as a function that will be run with no arguments. Note that all the code outside of themodule.exports
function will be run in the main thread too so don't put any computationally intensive code in that part. It is necessary for the main code torequire()
the worker code to fetch the module reference and loadmodulePath
's dependency graph into the bundle output.force
boolean= if a true returns a Web Worker mock. (optional, defaultfalse
)
Returns Promise
Thanks
Thanks to James Halliday, Boris Sirota and Browserify community.
Thanks to Sauce Labs for providing the infrastructure that allows us to run our build in real browsers.
License
conglomerate-worker is released under the terms of the BSD-3-Clause license.
This software includes or is derivative of works distributed under the licenses listed below. Please refer to the specific files and/or packages for more detailed information about the authors, copyright notices, and licenses.
webworkify is released under the terms of the MIT license.
webworkify-webpack is released under the terms of the MIT license.