npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

pseudo-worker

v1.3.0

Published

Tiny and mostly spec-compliant WebWorker polyfill

Downloads

3,378

Readme

pseudo-worker Build Status Coverage Status

A tiny and mostly spec-compliant WebWorker polyfill, designed for browsers that don't support WebWorkers, or for browsers that don't support certain features of WebWorkers.

This runs on the main thread, so you don't get any of the multithreading benefits of WebWorkers. However, it should be "good enough" for the less-compliant browsers.

The bundle size is very small: 1kB after uglify+gzip!

Install

npm install pseudo-worker

Usage

var PseudoWorker = require('pseudo-worker');
var worker = new PseudoWorker('script.js');

Or as a polyfill:

require('pseudo-worker/polyfill');
// now window.Worker is polyfilled in older browsers

Instead of Browserify/Webpack, you can also use it directly as a script tag:

<script src="https://unpkg.com/pseudo-worker/dist/pseudo-worker.js"></script>

Then it's available as window.PseudoWorker. Or for the polyfill:

<script src="https://unpkg.com/pseudo-worker/dist/pseudo-worker.polyfill.js"></script>

Supported APIS

  • onmessage
  • onerror
  • addEventListener
  • removeEventListener
  • postMessage
  • close

Note: inside the worker, you must use the self variable instead of the implicit global object. I.e. do this:

self.onmessage = ...

Not this:

onmessage = ...

Supported browsers

The full list of browsers that are tested in CI are in .zuul.yml. But basically:

  • Chrome
  • Firefox
  • Safari 7+
  • IE 8+
  • iOS 7.0+
  • Android 4.0+

Node.js is not supported. Check out node-webworker instead.

Testing the library

First:

npm install

Then to test in Node (using an XHR shim):

npm test

Or to test manually in your browser of choice:

npm run test-local

Or to test in a browser using SauceLabs:

npm run test-browser

Or to test with coverage reports:

npm run coverage