Installation
Requirements
Vue is a required peer dependency — this package has no framework-agnostic core (unlike some other VueCraft packages), every entry point is a Vue composable or a Vue-consumable worker-side helper.
| Environment | Minimum version |
|---|---|
| Node.js | ^20.19.0 || ^22.13.0 || >=24.0.0 |
| Vue | ^3.4.0 (required) |
Installation
bash
npm install vue-worker-kitNo peer dependencies beyond vue itself.
Quick start
ts
// heavy-sort.worker.ts
import { defineWorkerHandler } from 'vue-worker-kit/worker'
export default defineWorkerHandler(async (data: number[], ctx) => {
for (let i = 0; i < data.length; i++) {
if (ctx.signal.aborted) throw ctx.signal.reason
if (i % 10_000 === 0) ctx.reportProgress(i / data.length)
}
return data.sort((a, b) => a - b)
})ts
// component setup()
import { useWorker } from 'vue-worker-kit'
const { run, isRunning, progress, error, cancel } = useWorker<typeof import('./heavy-sort.worker')>(
() => new Worker(new URL('./heavy-sort.worker.ts', import.meta.url), { type: 'module' }),
)
const sorted = await run(hugeArray, { transfer: [hugeArray.buffer] })
// sorted: number[] — inferred from heavy-sort.worker.ts, no generic annotation needed