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 🙏

© 2026 – Pkg Stats / Ryan Hefner

@vettvangur/workbox

v1.0.50

Published

Thin wrapper around [`workbox-cli`](https://developer.chrome.com/docs/workbox/modules/workbox-cli) that generates a service worker using a sane default config — scoped to the `dest` directory you already declare in `vettvangur.config.mjs`.

Readme

@vettvangur/workbox

Thin wrapper around workbox-cli that generates a service worker using a sane default config — scoped to the dest directory you already declare in vettvangur.config.mjs.

Install

pnpm add -D @vettvangur/workbox

CLI

vettvangur-workbox build

This:

  1. Reads vettvangur.config.mjs from cwd (must export default with a non-empty dest string).
  2. Resolves dest to an absolute path.
  3. Runs workbox generateSW against it with the bundled workbox-config.cjs.
  4. Writes service-worker.js into dest.

If vettvangur.config.mjs is missing or dest is invalid, the loader throws a clear error pointing at the project root.

What the bundled config caches

| Pattern | Strategy | Notes | | --- | --- | --- | | *.js, *.css, assets/**/*.{js,css} | Precache | Up to 512KB per file. | | Image extensions (png/jpe?g/webp/avif/svg/gif/ico) | CacheFirst | Capped at 120 entries / 30 days. | | Other .js / .css | StaleWhileRevalidate | Used at runtime for late-loaded resources. |

Excluded from precache: source maps, *.test.js / *.spec.js, *.d.ts, __tests__/test/tests/coverage/sourcemaps directories, the generated service-worker.js / sw.js itself, and any workbox-*.js runtime files.

navigateFallback is set to /index.html and outdated caches are cleaned on activation.

Library usage (no CLI)

import { build } from '@vettvangur/workbox'
await build()

The library entrypoint is side-effect free — importing it does not register process.on('unhandledRejection' | 'uncaughtException') handlers. Those live in cli.mjs (the file the vettvangur-workbox bin points at) so they only attach when the CLI is invoked.

Customizing the config

If you need to tweak the workbox config (different glob patterns, different runtime caching), copy workbox-config.cjs into your project, edit it, and call workbox generateSW path/to/your-config.cjs directly — bypass the wrapper for that case.