1.0.8 • Published 7 months ago

better-webworker v1.0.8

Weekly downloads
-
License
MIT
Repository
github
Last release
7 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

7 months ago

1.0.7

7 months ago

1.0.6

7 months ago

1.0.5

7 months ago

1.0.4

8 months ago

1.0.3

9 months ago

1.0.2

9 months ago

1.0.1

9 months ago

1.0.0

9 months ago