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 🙏

© 2024 – Pkg Stats / Ryan Hefner

@punt/node

v1.3.0-alpha.1

Published

Punt is a powerful, developer friendly queue for processing background jobs.

Downloads

103

Readme

Punt for Node.js

Punt is a developer friendly queue for processing background jobs.

As an idiom, “to punt” means to defer action, or to pass responsibility off to someone else.

- Probably the least trustworthy dictionary ever

Installation

1. Setting up your development environment

Punt requires Redis to run. Here's a guide on how to install Redis on the common development systems.

2. Install Punt

$ npm install @punt/node

or

$ yarn add @punt/node

Start quickly

// index.js

import punt, { worker } from '@punt/node'

worker('sayHello', async ({ name }) => {
  console.log('Hello,', name)
})

punt('sayHello', { name: 'Punt' })
$ npx punt worker index.js
# => Hello, Punt

Command Line Interface

punt is Punt's CLI tool to start worker processes. You can run it with npx punt. The syntax is

npx punt worker [entrypoint] <options>
  • [entrypoint] is a Javascript or Typescript file that loads all project files with worker function calls. This argument is required.
  • <options> are runtime options. See below.

CLI options

  • -t, --ts: Typescript mode. This option enables the Typescript loader, allowing you to run workers without a transpilation step (useful in development mode). This option will be automatically applied if your entrypoint is a .ts file.

💡 Important note

Punt has a peer dependency on ts-node for running in Typescript mode. If you're using Typescript, it's likely you have it installed already. If you don't, install it by running

npm install --save-dev ts-node
  • -v, --verbose: Verbose output. This option enables debug logs.

Verbose

To debug your workers, you can run them in verbose mode. This will print out the logs of your workers to the console.

You can either start the worker with the DEBUG environment variable set to punt:* or with the --verbose (or -v) option:

DEBUG=punt:* npx punt worker entrypoint.js

or

npx punt worker entrypoint.js -v

Connecting to Redis

Punt recommends setting the REDIS_URL environment variable with valid Redis connection string. If you don't set it, Punt will default to redis://localhost:6379.

You can use a rediss:// connection string to connect to a Redis server over TLS.

Connecting to Heroku Redis

Heroku Redis uses an encrypted connection with a self-signed certificate. To connect to Heroku Redis, you need to set the REDIS_TLS_REJECT_UNAUTHORIZED environment variable to 0.

Alternatively, you can set the redisOptions entry in your Punt config file punt.config.js to

// punt.config.js

module.exports = {
  // ... other configuration
  redisOptions: {
    tls: {
      rejectUnauthorized: false,
    },
  },
}

The config file should not interfere with your development environment, as Punt will ignore the tls entry for non-encrypted connections (redis://).

Getting Help

If you have a question, please create a topic in Discussions.

If you believe you found a bug, please open an Issue.