0.1.1 • Published 3 years ago

@xplorfin/hardhat-solc-excludes v0.1.1

Weekly downloads
-
License
MIT
Repository
github
Last release
3 years ago

hardhat-solc-excludes

Sometimes, you want to exclude certain files or directories from being compiled by Hardhat. Unfortunately, there's no inbuilt way to do that.

Enter hardhat-solc-excludes.

By importing hardhat-solc-excludes (import @xplorfin/hardhat-solc-excludes), Hardhat's Solidity configuration interface is extended with an excludes sub-object, which looks something like

interface SolcExcludes {
    files?: string[],
    directories?: string[],
}

The internal Hardhat subtask responsible for gathering the list of Solidity files to compile is overridden with one that does more or less the same thing, save for filtering out files and directories which are defined in the excludes object.

Installation

  • Yarn: yarn add --dev @xplorfin/hardhat-solc-excludes
  • NPM: npm i --save-dev @xplorfin/hardhat-solc-excludes

Usage

// hardhat.config.ts

// make sure hardhat-solc-excludes is imported somewhere close to the top of your hardhat config file.
import {HardhatUserConfig} from "hardhat/types";
import "@xplorfin/hardhat-solc-excludes";

const hardhatConfig: HardhatUserConfig = {
    /* your hardhat config goes here */
    solidity: {
        compilers: [
            {
                version: "0.7.6",
                settings: {/*...*/},
            },
            {
                version: "0.6.12",
                settings: {/*...*/},
                // Exclude files/directories at the compiler level
                excludes: {
                    files: ["MyContractToExclude.sol"]
                }
            }
        ],
        // Exclude files/directories at the global config level (applies to ALL compilers) 
        excludes: {
            directories: [
                "contracts/directory_to_exclude"
            ]
        }
    }
};

export default hardhatConfig;

Contributing/Issues

Issues

Open an issue on GitHub, and we'll take a look.

Pull Requests (Features, bug fixes, etc.)

Open an issue and accompanying pull request on GitHub, and we'll review it from there.

This project is licensed under the MIT license, which means you can modify it however you'd like. That being said, if you're (legally, morally, etc.) able to push your changes upstream, please do!