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

@deployoor/hardhat

v0.3.0

Published

Hardhat plugin: regenerate deployoor's typed deployers automatically after every `hardhat compile`.

Readme

@deployoor/hardhat

A Hardhat plugin that regenerates deployoor's typed deployers automatically after every hardhat compile. Works on Hardhat 2 and Hardhat 3.

Without it, the flow is two steps — hardhat compile then deployoor generate. With it, hardhat compile runs deployoor generate in process the moment fresh artifacts/ are written: no extra terminal, no separate command, no stale deployers. Edit a contract, compile, and the typed getOrDeploy<Name> functions are already up to date.

Hardhat 2 and Hardhat 3 register plugins differently, so there are two entry points in this one package: the default (@deployoor/hardhat, Hardhat 2) and @deployoor/hardhat/v3 (Hardhat 3). Both do the same thing.

Install

pnpm add -D @deployoor/hardhat deployoor viem

You still need a deployoor.config.ts (run npx deployoor init once).

Usage — Hardhat 2

Hardhat 2 registers plugins by side effect, so importing the default entry is enough:

// hardhat.config.ts
import "@deployoor/hardhat";

export default {
  solidity: "0.8.24",
};
// hardhat.config.js (CommonJS)
require("@deployoor/hardhat");

module.exports = { solidity: "0.8.24" };

Usage — Hardhat 3

Hardhat 3 is declarative and ESM-only: import the /v3 plugin object and add it to plugins.

// hardhat.config.ts
import { defineConfig } from "hardhat/config";
import deployoor from "@deployoor/hardhat/v3";

export default defineConfig({
  plugins: [deployoor],
  solidity: "0.8.28",
});

Either way, every compile now regenerates the deployers:

npx hardhat compile
# deployoor: generated 3 deployer file(s)

Options

Hardhat 2 — configure under a deployoor key in your Hardhat config:

export default {
  solidity: "0.8.24",
  deployoor: {
    generate: false, // opt out of auto-generation (default: true)
  },
};

| Option | Type | Default | Description | | ---------- | --------- | ------- | ------------------------------------------------------ | | generate | boolean | true | Run deployoor generate after each hardhat compile. |

Hardhat 3 — to disable auto-generation, remove the plugin from plugins (Hardhat 3 has no side-effect registration to toggle with a config flag).

Output location, which contracts to include, and the deployments path all come from your deployoor.config.ts — this plugin only decides when generation runs.

Notes

  • Compile never breaks. If generation fails (no config yet, nothing compiled, a bad include), the plugin logs a warning and lets hardhat compile finish — it never rethrows.
  • It calls deployoor's programmatic generateDeployers (exported from deployoor/generate) — exactly what the deployoor generate CLI runs, so results are identical whichever way you trigger it.
  • Foundry users get the same behavior via forge build's hooks or a forge build && deployoor generate script; this plugin is the Hardhat-native convenience.

License

MIT