workerize-loader
A webpack loader that moves a module and its dependencies into a Web Worker, automatically reflecting exported functions as asynchronous proxies.
- Bundles a tiny, purpose-built RPC implementation into your app
- If exported module methods are already async, signature is unchanged
- Supports synchronous and asynchronous worker functions
- Works beautifully with async/await
- Imported value is instantiable, just a decorated
Worker
Install
npm install -D workerize-loader
Usage
worker.js:
export function expensive(time) {
let start = Date.now(),
count = 0
while (Date.now() - start < time) count++
return count
}
index.js: (our demo)
import worker from 'workerize-loader!./worker'
let instance = worker()
instance.expensive(1000).then( count => {
console.log(`Ran ${count} loops`)
})
Credit
The inner workings here are heavily inspired by worker-loader. It's worth a read!
License
MIT License © Jason Miller