1.0.0-next.5 • Published 27 days ago

@solidstate/hardhat-git v1.0.0-next.5

Weekly downloads
-
License
UNLICENSED
Repository
github
Last release
27 days ago

Hardhat Git

Isolated HRE execution based on Git revisions.

Installation

npm install --save-dev @solidstate/hardhat-git
# or
pnpm add -D @solidstate/hardhat-git

Usage

This plugin is primarily intended to be a dependency for other plugins. It exposes a custom HRE factory which does the following:

  • Create a temporary clone of the current repository.
  • Check out the specified git revision.
  • Install NPM dependencies.

The returned HRE instance can be used just like a standard HRE.

See the @solidstate/hardhat-contract-sizer and @solidstate/hardhat-storage-layout-diff packages for implementation examples.

Load the factory and checkout a git revision:

import { createHardhatRuntimeEnvironmentAtGitRev } from '@solidstate/hardhat-git';

const gitHre = await createHardhatRuntimeEnvironmentAtGitRev(hre, 'HEAD~1');

Optionally declare the plugin as a dependency to expose the helper tasks:

const plugin: HardhatPlugin = {
  dependencies: [
    async () => {
      const { default: HardhatGit } = await import('@solidstate/hardhat-git');
      return HardhatGit;
    },
  ],
};

Load plugin standalone in Hardhat config:

import HardhatGit from '@solidstate/hardhat-git';

const config: HardhatUserConfig = {
  plugins: [
    HardhatGit,
  ],
  git: {
    ... // see table for configuration options
  },
};

Add configuration under the git key:

optiondescriptiondefault
npmInstallCommand used to install NPM dependencies in repository clonesinferred via package-manager-detector, falls back to'npm install'

Development

Install dependencies via pnpm:

pnpm install

Setup Husky to format code on commit:

pnpm prepare