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

funpack

v1.4.0

Published

Function Packager

Readme

funpack

Your function packager (for example for AWS Lambdas).

What this package does for you:

  • Bundles your code using esbuild
  • Generates proper package.json invidually for every function
  • ZIPs your functions

Why?

The problem I faced is a simple way to compile code for AWS Lambda's and then deploy them with Terraform, I wanted to make it easier and faster hence I created this package. This might be your case aswell, but I assume there are many different use cases so feel free to create issues if you're having any problems with your use case.

Setup

npm install --save-dev funpack
yarn add -D funpack
  1. Add funpack to your package.json, for example like so:
// package.json
{
  ...
  "funpack": {
    "settings": {},
    "functions": {
      "myfunc1": "./src/myfunc1/index.ts",
      "otherFunction": "./src/otherFunction/index.ts"
    }
  }
}

Settings are described under the Settings section.

  1. Run the funpack cli. For example:
{
  ...
  "scripts": {
    "prepackage": "tsc --noEmit",
    "package": "funpack"
  },
  ...
}

The funpack cli accepts --packageJsonPath (defaults to directory of script execution so your main package.json) that accepts the path of the package.json that contains the funpack config.

Settings

Each option inside settings is optional. Below you can view what exactly is needed in the funpack object as well as which settings are available.

configSchema that represents the funpack config

For example you can use ESM with the following setup:

// package.json
{
  ...
  "funpack": {
    "settings": {
      "esbuildConfigOverride": {
        "format": "esm",
        "target": "node16"
      },
      "packageFieldsToCopy": [
        "type"
      ],
      "zip": true
    },
    "functions": {
      "main": "./src/main/index.ts"
    }
  }
}

Example of using custom package.json values:

{
  "settings": {
    "customPackageFields": {
      "repository": {
        "type": "git",
        "url": "${YOUR_ENV_VARIABLE}"
      }
    }
  }
}

Recommendations

When used together with TypeScript, esbuild will not perform type checking, so it's recommended to run tsc --noEmit before using funpack.