ooflorent / workerize-loader

๐Ÿ—๏ธ Automatically move a module into a Web Worker (Webpack loader)

Home Page:https://npm.im/workerize-loader

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

workerize-loader

workerize-loader npm travis

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:

// block for `time` ms, then return the number of loops we could run in that time:
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()  // `new` is optional

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

About

๐Ÿ—๏ธ Automatically move a module into a Web Worker (Webpack loader)

https://npm.im/workerize-loader


Languages

Language:JavaScript 100.0%