# webworker-shim

> A tiny shim for WebWorker (data URI only) that works in Node.

Latest version **1.1.4** (published 2025-06-01) · MIT license · 0 weekly downloads

## Install

```sh
npm install webworker-shim
pnpm add webworker-shim
yarn add webworker-shim
bun add webworker-shim
```

## Health

**Score 40/100 (D)** — status: maintenance-mode.

Positive: has types; esm support; no vulnerabilities; high quality score.

Warnings: low downloads.

Negative: stale; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.1.4 |
| Published | 2025-06-01 |
| First published | 2022-05-21 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Dependencies | 0 |
| Unpacked size | 6.3 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 5 |
| Maintainers | fabiospampinato |
| Keywords | worker, webworker, node, shim |

## Links

- npm: https://www.npmjs.com/package/webworker-shim
- Repository: https://github.com/fabiospampinato/webworker-shim
- Homepage: https://github.com/fabiospampinato/webworker-shim#readme
- Issues: https://github.com/fabiospampinato/webworker-shim/issues
- npm.io page: https://npm.io/package/webworker-shim

## Alternatives

- [@expo/fingerprint](https://npm.io/package/@expo/fingerprint.md) — 6.2M weekly downloads
- [@azure/monitor-opentelemetry-exporter](https://npm.io/package/@azure/monitor-opentelemetry-exporter.md) — 850.0K weekly downloads
- [@azure/monitor-opentelemetry](https://npm.io/package/@azure/monitor-opentelemetry.md) — 624.0K weekly downloads
- [@posthog/ai](https://npm.io/package/@posthog/ai.md) — 423.3K weekly downloads
- [fakefilter](https://npm.io/package/fakefilter.md) — 63.9K weekly downloads

## Recent versions

- 1.1.4 (latest) — 2025-06-01
- 1.1.3 — 2025-06-01
- 1.1.2 — 2025-05-31
- 1.1.1 — 2025-01-18
- 1.1.0 — 2022-05-22
- 1.0.0 — 2022-05-21

## README

# WebWorker Shim

A tiny shim for WebWorker (data URI only) that works in Node.

## Install

```sh
npm install webworker-shim
```

## Usage

Only WebWorkers encoded as a `data:text/javascript;charset=utf-8,*` string are supported.

```ts
import Worker from 'webworker-shim';

// Let's create a worker

const worker = new Worker ( `data:text/javascript;charset=utf-8,${encodeURIComponent (`
  addEventListener ( 'message', event => {
    if ( event.data === 'ping' ) {
      postMessage ( 'pong' );
    }
  });
`)}`);

worker.addEventListener ( 'message', event => {
  console.log ( event.data ); // => 'pong'
});

worker.postMessage ( 'ping' );
```

Alternatively you can just polyfill `gloalThis.Worker`, like this:

```ts
import 'webworker-shim/register';
```

## License

MIT © Fabio Spampinato

---
_Source: https://npm.io/package/webworker-shim · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
