
Research
/Security News
9 Malicious NuGet Packages Deliver Time-Delayed Destructive Payloads
Socket researchers discovered nine malicious NuGet packages that use time-delayed payloads to crash applications and corrupt industrial control systems.
@vitest/web-worker
Advanced tools
Web Worker support for Vitest testing. Doesn't require JSDom.
Simulates Web Worker, but in the same thread.
Supported:
new Worker(path)new SharedWorker(path)import MyWorker from './worker?worker'import MySharedWorker from './worker?sharedworker'# with npm
npm install -D @vitest/web-worker
# with pnpm
pnpm install -D @vitest/web-worker
# with yarn
yarn add --dev @vitest/web-worker
Just import @vitest/web-worker in your test file to test only in current suite.
Or add @vitest/web-worker in your setupFiles, if you want to have a global support.
import { defineConfig } from 'vitest/node'
export default defineConfig({
test: {
setupFiles: ['@vitest/web-worker'],
},
})
You can also import defineWebWorkers from @vitest/web-worker/pure to define workers, whenever you need:
import { defineWebWorkers } from '@vitest/web-worker/pure'
if (process.env.SUPPORT_WORKERS) {
defineWebWorkers({ clone: 'none' })
}
It accepts options:
clone: 'native' | 'ponyfill' | 'none'. Defines how should Worker clone message, when transferring data. Applies only to Worker communication. SharedWorker uses MessageChannel from Node's worker_threads module, and is not configurable.Note Requires Node 17, if you want to use native
structuredClone. Otherwise, it fallbacks to polyfill, if not specified asnone. You can also configure this option withVITEST_WEB_WORKER_CLONEenvironmental variable.
// worker.ts
self.onmessage = (e) => {
self.postMessage(`${e.data} world`)
}
// worker.test.ts
import '@vitest/web-worker'
import MyWorker from '../worker?worker'
let worker = new MyWorker()
// new Worker is also supported
worker = new Worker(new URL('../src/worker.ts', import.meta.url))
worker.postMessage('hello')
worker.onmessage = (e) => {
// e.data equals to 'hello world'
}
onmessage = () => {}. Please, use self.onmessage = () => {}.onconnect = () => {}. Please, use self.onconnect = () => {}.byteLength.DEBUG=vitest:web-worker environmental variable.FAQs
Web Worker support for testing in Vitest
The npm package @vitest/web-worker receives a total of 76,639 weekly downloads. As such, @vitest/web-worker popularity was classified as popular.
We found that @vitest/web-worker demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 5 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Research
/Security News
Socket researchers discovered nine malicious NuGet packages that use time-delayed payloads to crash applications and corrupt industrial control systems.

Security News
Socket CTO Ahmad Nassri discusses why supply chain attacks now target developer machines and what AI means for the future of enterprise security.

Security News
Learn the essential steps every developer should take to stay secure on npm and reduce exposure to supply chain attacks.