0.2.0 • Published 10 months ago
worker-emitter v0.2.0
worker-emitter
EventEmitter for WebWorker
Install
npm install worker-emitter
Usage
client side
// main.js
import { WorkerEmitter } from 'worker-emitter'
const client = new WorkerEmitter(new Worker('./worker.js'))
client.on('sum', result => {
console.log(result)
})
client.emit('sum', 1, 2, 3)
worker side
// worker.js
import { WorkerEmitter } from 'worker-emitter'
const worker = new WorkerEmitter(self)
worker.on('sum', (...numbers) => {
const result = numbers.reduce((acc, cur) => acc + cur, 0)
worker.emit('sum', result)
})
type-safe events
// client emits
type ClientEventsMap = {
sum: (...numbers: number[]) => void
}
// worker emits
type WorkerEventsMap = {
sum: (result: number) => void
}
// client side
const client = new WorkerEmitter<ClientEventsMap, WorkerEventsMap>(new Worker('./worker.js'))
// worker side
const worker = new WorkerEmitter<WorkerEventsMap, ClientEventsMap>(self)