1.0.8 • Published 10 months ago

better-webworker v1.0.8

Weekly downloads
-
License
MIT
Repository
github
Last release
10 months ago

better-webworker

一个让 Web Workers 更易用、支持 TypeScript 类型安全的包装器。

安装

npm i better-webworker

配置

// vite.config.ts
import { defineConfig } from 'vite'
import betterWebworker from 'better-webworker/vite.mjs'

export default defineConfig({
  plugins: [
    betterWebworker() // 默认匹配模式: .worker.ts
    // 传入正则用于匹配文件
    // betterWebworker(/\.worker\.ts$/)
  ],
})

基础用法

// test.worker.ts
import { defineReceive } from 'better-webworker'

const ping = (str: string) => {
    console.log(str);
    return 'pong ' + str
}

export default defineReceive({
    ping
});
// main.ts
import worker from './test.worker';

const { ping } = worker();

console.log(ping('hello'));

高级用法

// ...
const { methods, cb, worker } = useWorker();
const { handleBuffer } = methods;
const buf = new ArrayBuffer(100000);

handleBuffer.transfer = [buf]; // 传递 ArrayBuffer
handleBuffer.timeout = 10000; // 设置超时时间
handleBuffer(buf, cb((newBuf) => {
    console.log('done', newBuf);
    worker.terminate(); // 关闭 worker
}));
// ...

注意事项

默认传递的函数将作为字符串在 worker 线程中还原然后执行。如果需要使用回调函数,请使用 cb 进行包装。 提供了WorkerCallBack<>类型,可以用于申明回调函数的类型。

其他

不怎么会写文档,有问题欢迎提 Issues。 如果帮到你了,有条件的话,随便赏点给孩子吧 npm.io npm.io

许可证

MIT

1.0.8

10 months ago

1.0.7

10 months ago

1.0.6

10 months ago

1.0.5

10 months ago

1.0.4

12 months ago

1.0.3

12 months ago

1.0.2

12 months ago

1.0.1

12 months ago

1.0.0

12 months ago