Skip to content

Commit f68ebd8

Browse files
committed
Enforce consistent type imports
1 parent fdd410a commit f68ebd8

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

47 files changed

+212
-189
lines changed

config-v-next/eslint.cjs

+7
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,13 @@ function createConfig(configFilePath, packageEntryPoints = []) {
9999
{ assertionStyle: "never" },
100100
],
101101
"@typescript-eslint/consistent-type-definitions": "error",
102+
"@typescript-eslint/consistent-type-imports": [
103+
"error",
104+
{
105+
prefer: "type-imports",
106+
disallowTypeAnnotations: true,
107+
},
108+
],
102109
"@typescript-eslint/dot-notation": "error",
103110
"@typescript-eslint/explicit-member-accessibility": [
104111
"error",

v-next/core/src/config.ts

+8-7
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,18 @@
1+
import type { ConfigurationVariable } from "./types/config.js";
2+
import type { GlobalParameter } from "./types/global-parameters.js";
3+
import type {
4+
EmptyTaskDefinitionBuilder,
5+
NewTaskDefinitionBuilder,
6+
TaskOverrideDefinitionBuilder,
7+
} from "./types/tasks.js";
8+
19
import { buildGlobalParameterDefinition } from "./internal/global-parameters.js";
210
import {
311
EmptyTaskDefinitionBuilderImplementation,
412
NewTaskDefinitionBuilderImplementation,
513
TaskOverrideDefinitionBuilderImplementation,
614
} from "./internal/tasks/builders.js";
715
import { ParameterType } from "./types/common.js";
8-
import { ConfigurationVariable } from "./types/config.js";
9-
import { GlobalParameter } from "./types/global-parameters.js";
10-
import {
11-
EmptyTaskDefinitionBuilder,
12-
NewTaskDefinitionBuilder,
13-
TaskOverrideDefinitionBuilder,
14-
} from "./types/tasks.js";
1516

1617
export type { HardhatUserConfig } from "./types/config.js";
1718

v-next/core/src/index.ts

+5-4
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1+
import type { UnsafeHardhatRuntimeEnvironmentOptions } from "./types/cli.js";
2+
import type { HardhatUserConfig } from "./types/config.js";
3+
import type { GlobalArguments } from "./types/global-parameters.js";
4+
import type { HardhatRuntimeEnvironment } from "./types/hre.js";
5+
16
import { HardhatRuntimeEnvironmentImplementation } from "./internal/hre.js";
2-
import { UnsafeHardhatRuntimeEnvironmentOptions } from "./types/cli.js";
3-
import { HardhatUserConfig } from "./types/config.js";
4-
import { GlobalArguments } from "./types/global-parameters.js";
5-
import { HardhatRuntimeEnvironment } from "./types/hre.js";
67

78
/**
89
* Creates an instances of the Hardhat Runtime Environment.

v-next/core/src/internal/configuration-variables.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
import { HardhatError } from "@nomicfoundation/hardhat-errors";
2-
3-
import {
1+
import type {
42
ConfigurationVariable,
53
ResolvedConfigurationVariable,
64
} from "../types/config.js";
7-
import { HookManager } from "../types/hooks.js";
5+
import type { HookManager } from "../types/hooks.js";
6+
7+
import { HardhatError } from "@nomicfoundation/hardhat-errors";
88

99
export class ResolvedConfigurationVariableImplementation
1010
implements ResolvedConfigurationVariable

v-next/core/src/internal/global-parameters.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
import { ParameterType } from "../types/common.js";
2-
import {
1+
import type { ParameterType } from "../types/common.js";
2+
import type {
33
GlobalArguments,
44
GlobalParameter,
55
GlobalParameterMap,
66
} from "../types/global-parameters.js";
7-
import { HardhatPlugin } from "../types/plugins.js";
7+
import type { HardhatPlugin } from "../types/plugins.js";
88

99
/**
1010
* Builds a map of the global parameters, validating them.

v-next/core/src/internal/hook-manager.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
/* eslint-disable @typescript-eslint/consistent-type-assertions -- Typescript
22
can handle the generic types in this file correctly. It can do it for function
33
signatures, but not for function bodies. */
4-
import {
4+
import type {
55
ChainedHook,
66
HookContext,
77
HookManager,
88
InitialHookParams as InitialHookParams,
99
InitialChainedHookParams,
1010
HardhatHooks,
1111
} from "../types/hooks.js";
12-
import { HardhatPlugin } from "../types/plugins.js";
13-
import { LastParameter, Return } from "../types/utils.js";
12+
import type { HardhatPlugin } from "../types/plugins.js";
13+
import type { LastParameter, Return } from "../types/utils.js";
1414

1515
export class HookManagerImplementation implements HookManager {
1616
readonly #pluginsInReverseOrder: HardhatPlugin[];

v-next/core/src/internal/hre.ts

+8-9
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,18 @@
1-
import type { HardhatRuntimeEnvironment } from "../types/hre.js";
2-
3-
import { UnsafeHardhatRuntimeEnvironmentOptions } from "../types/cli.js";
4-
import { HardhatUserConfig, HardhatConfig } from "../types/config.js";
5-
import {
1+
import type { UnsafeHardhatRuntimeEnvironmentOptions } from "../types/cli.js";
2+
import type { HardhatUserConfig, HardhatConfig } from "../types/config.js";
3+
import type {
64
GlobalArguments,
75
GlobalParameterMap,
86
} from "../types/global-parameters.js";
9-
import {
7+
import type {
108
HardhatUserConfigValidationError,
119
HookContext,
1210
HookManager,
1311
} from "../types/hooks.js";
14-
import { HardhatPlugin } from "../types/plugins.js";
15-
import { TaskManager } from "../types/tasks.js";
16-
import { UserInterruptionManager } from "../types/user-interruptions.js";
12+
import type { HardhatRuntimeEnvironment } from "../types/hre.js";
13+
import type { HardhatPlugin } from "../types/plugins.js";
14+
import type { TaskManager } from "../types/tasks.js";
15+
import type { UserInterruptionManager } from "../types/user-interruptions.js";
1716

1817
import { ResolvedConfigurationVariableImplementation } from "./configuration-variables.js";
1918
import {

v-next/core/src/internal/plugins/detect-plugin-npm-dependency-problems.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1+
import type { HardhatPlugin } from "../../types/plugins.js";
2+
import type { PackageJson } from "@nomicfoundation/hardhat-utils/package";
3+
14
import { createRequire } from "node:module";
25
import path from "node:path";
36

47
import { HardhatError } from "@nomicfoundation/hardhat-errors";
5-
import { PackageJson } from "@nomicfoundation/hardhat-utils/package";
68
import semver from "semver";
79

8-
import { HardhatPlugin } from "../../types/plugins.js";
9-
1010
/**
1111
* Validate that a plugin is installed and that its peer dependencies are installed and satisfy the version constraints.
1212
*

v-next/core/src/internal/tasks/task-manager.ts

+10-9
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,20 @@
1-
import {
2-
HardhatError,
3-
assertHardhatInvariant,
4-
} from "@nomicfoundation/hardhat-errors";
5-
6-
import { GlobalParameterMap } from "../../types/global-parameters.js";
7-
import { HardhatRuntimeEnvironment } from "../../types/hre.js";
8-
import {
1+
import type { GlobalParameterMap } from "../../types/global-parameters.js";
2+
import type { HardhatRuntimeEnvironment } from "../../types/hre.js";
3+
import type {
94
Task,
105
TaskDefinition,
11-
TaskDefinitionType,
126
TaskManager,
137
NewTaskDefinition,
148
TaskOverrideDefinition,
159
} from "../../types/tasks.js";
1610

11+
import {
12+
HardhatError,
13+
assertHardhatInvariant,
14+
} from "@nomicfoundation/hardhat-errors";
15+
16+
import { TaskDefinitionType } from "../../types/tasks.js";
17+
1718
import { ResolvedTask } from "./resolved-task.js";
1819
import { formatTaskId, getActorFragment } from "./utils.js";
1920

v-next/core/src/internal/user-interruptions.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
import { assertHardhatInvariant } from "@nomicfoundation/hardhat-errors";
1+
import type { HookContext, HookManager } from "../types/hooks.js";
2+
import type { UserInterruptionManager } from "../types/user-interruptions.js";
23

3-
import { HookContext, HookManager } from "../types/hooks.js";
4-
import { UserInterruptionManager } from "../types/user-interruptions.js";
4+
import { assertHardhatInvariant } from "@nomicfoundation/hardhat-errors";
55

66
import { AsyncMutex } from "./async-mutex.js";
77

v-next/core/src/types/cli.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import { GlobalParameterMap } from "./global-parameters.js";
2-
import { HardhatPlugin } from "./plugins.js";
1+
import type { GlobalParameterMap } from "./global-parameters.js";
2+
import type { HardhatPlugin } from "./plugins.js";
33

44
/**
55
* An object that contains options to bypass some initialization, to avoid

v-next/core/src/types/global-parameters.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { ParameterType } from "./common.js";
1+
import type { ParameterType } from "./common.js";
22

33
/**
44
* A global parameter with an associated value and a default if not provided by

v-next/core/src/types/hooks.ts

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
1-
import {
1+
import type {
22
ConfigurationVariable,
33
HardhatConfig,
44
HardhatUserConfig,
55
ResolvedConfigurationVariable,
66
} from "./config.js";
7-
import { GlobalArguments } from "./global-parameters.js";
8-
import { HardhatRuntimeEnvironment } from "./hre.js";
9-
import { UserInterruptionManager } from "./user-interruptions.js";
10-
import {
7+
import type { GlobalArguments } from "./global-parameters.js";
8+
import type { HardhatRuntimeEnvironment } from "./hre.js";
9+
import type { UserInterruptionManager } from "./user-interruptions.js";
10+
import type {
1111
LastParameter,
1212
ParametersExceptFirst,
1313
ParametersExceptFirstAndLast,

v-next/core/src/types/hre.ts

+3-4
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
1-
import { HardhatConfig } from "../types/config.js";
2-
3-
import { GlobalArguments } from "./global-parameters.js";
4-
import { UserInterruptionManager } from "./user-interruptions.js";
1+
import type { GlobalArguments } from "./global-parameters.js";
2+
import type { UserInterruptionManager } from "./user-interruptions.js";
3+
import type { HardhatConfig } from "../types/config.js";
54

65
/**
76
* The Hardhat Runtime Environment (HRE) is an object that exposes

v-next/core/src/types/plugins.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
import { GlobalParameter } from "./global-parameters.js";
2-
import { HardhatHooks } from "./hooks.js";
3-
import { TaskDefinition } from "./tasks.js";
1+
import type { GlobalParameter } from "./global-parameters.js";
2+
import type { HardhatHooks } from "./hooks.js";
3+
import type { TaskDefinition } from "./tasks.js";
44

55
// We add the plugins to the config types with a module augmentation to avoid
66
// introducing a circular dependency that would look like this:

v-next/core/test/internal/plugins/detect-plugin-npm-dependency-problems.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1+
import type { HardhatPlugin } from "../../../src/types/plugins.js";
2+
13
import assert from "node:assert/strict";
24
import { describe, it } from "node:test";
35

46
import { detectPluginNpmDependencyProblems } from "../../../src/internal/plugins/detect-plugin-npm-dependency-problems.js";
5-
import { HardhatPlugin } from "../../../src/types/plugins.js";
67

78
describe("Plugins - detect npm dependency problems", () => {
89
const plugin: HardhatPlugin = {

v-next/core/test/internal/plugins/resolve-plugin-list.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1+
import type { HardhatPlugin } from "../../../src/types/plugins.js";
2+
13
import assert from "node:assert/strict";
24
import { describe, it } from "node:test";
35

46
import { resolvePluginList } from "../../../src/internal/plugins/resolve-plugin-list.js";
5-
import { HardhatPlugin } from "../../../src/types/plugins.js";
67

78
describe("Plugins - resolve plugin list", () => {
89
const installedPackageFixture = import.meta.resolve(

v-next/core/test/internal/user-interruptions/user-interruptions-manager.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
1+
import type { UserInterruptionHooks } from "../../../src/types/hooks.js";
2+
13
import assert from "node:assert/strict";
24
import { describe, it } from "node:test";
35

46
import { HookManagerImplementation } from "../../../src/internal/hook-manager.js";
57
import { UserInterruptionManagerImplementation } from "../../../src/internal/user-interruptions.js";
6-
import { UserInterruptionHooks } from "../../../src/types/hooks.js";
78

89
describe("UserInterruptionManager", () => {
910
describe("displayMessage", () => {

v-next/hardhat-build-system/src/internal/build-system.ts

+7-6
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
1+
import type { TasksOverrides } from "./tasks.js";
2+
import type {
3+
Artifacts,
4+
CompilationJobCreationError,
5+
BuildConfig,
6+
} from "./types/index.js";
7+
18
import {
2-
TasksOverrides,
39
taskCompileRemoveObsoleteArtifacts,
410
taskCompileSolidity,
511
taskCompileSolidityGetCompilationJobsFailureReasons,
@@ -8,11 +14,6 @@ import {
814
taskCompileSolidityGetSourcePaths,
915
taskCompileSolidityReadFile,
1016
} from "./tasks.js";
11-
import {
12-
Artifacts,
13-
CompilationJobCreationError,
14-
BuildConfig,
15-
} from "./types/index.js";
1617
import { Artifacts as ArtifactsImpl } from "./utils/artifacts.js";
1718

1819
export interface BuildRequest {

v-next/hardhat-build-system/src/internal/solidity/compilation-job.ts

+14-16
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,13 @@
1+
import type { ResolvedFile } from "./resolver.js";
2+
import type * as taskTypes from "../types/builtin-tasks/index.js";
3+
import type { SolcConfig, SolidityConfig } from "../types/index.js";
4+
15
import { assertHardhatInvariant } from "@nomicfoundation/hardhat-errors";
26
import debug from "debug";
37
import { deepEqual } from "fast-equals";
48
import semver from "semver";
59

6-
import * as taskTypes from "../types/builtin-tasks/index.js";
7-
import {
8-
CompilationJobCreationError,
9-
CompilationJobCreationErrorReason,
10-
CompilationJobsCreationResult,
11-
} from "../types/builtin-tasks/index.js";
12-
import { SolcConfig, SolidityConfig } from "../types/index.js";
13-
14-
import { ResolvedFile } from "./resolver.js";
10+
import { CompilationJobCreationErrorReason } from "../types/builtin-tasks/index.js";
1511

1612
// this should have a proper version range when it's fixed
1713
const SOLC_BUG_9573_VERSIONS = "<0.8.0";
@@ -21,7 +17,7 @@ function isCompilationJobCreationError(
2117
| taskTypes.CompilationJob
2218
| taskTypes.CompilationJobCreationError
2319
| SolcConfig,
24-
): x is CompilationJobCreationError {
20+
): x is taskTypes.CompilationJobCreationError {
2521
return "reason" in x;
2622
}
2723

@@ -31,7 +27,7 @@ export async function createCompilationJobFromFile(
3127
dependencyGraph: taskTypes.DependencyGraph,
3228
file: ResolvedFile,
3329
solidityConfig: SolidityConfig,
34-
): Promise<CompilationJob | CompilationJobCreationError> {
30+
): Promise<CompilationJob | taskTypes.CompilationJobCreationError> {
3531
const directDependencies = dependencyGraph.getDependencies(file);
3632
const transitiveDependencies =
3733
dependencyGraph.getTransitiveDependencies(file);
@@ -73,10 +69,12 @@ export async function createCompilationJobsFromConnectedComponent(
7369
connectedComponent: taskTypes.DependencyGraph,
7470
getFromFile: (
7571
file: ResolvedFile,
76-
) => Promise<taskTypes.CompilationJob | CompilationJobCreationError>,
77-
): Promise<CompilationJobsCreationResult> {
72+
) => Promise<
73+
taskTypes.CompilationJob | taskTypes.CompilationJobCreationError
74+
>,
75+
): Promise<taskTypes.CompilationJobsCreationResult> {
7876
const compilationJobs: taskTypes.CompilationJob[] = [];
79-
const errors: CompilationJobCreationError[] = [];
77+
const errors: taskTypes.CompilationJobCreationError[] = [];
8078

8179
for (const file of connectedComponent.getResolvedFiles()) {
8280
const compilationJobOrError = await getFromFile(file);
@@ -187,7 +185,7 @@ function getCompilerConfigForFile(
187185
directDependencies: ResolvedFile[],
188186
transitiveDependencies: taskTypes.TransitiveDependency[],
189187
solidityConfig: SolidityConfig,
190-
): SolcConfig | CompilationJobCreationError {
188+
): SolcConfig | taskTypes.CompilationJobCreationError {
191189
const transitiveDependenciesVersionPragmas = transitiveDependencies.map(
192190
({ dependency }) => dependency.content.versionPragmas,
193191
);
@@ -249,7 +247,7 @@ function getCompilationJobCreationError(
249247
transitiveDependencies: taskTypes.TransitiveDependency[],
250248
compilerVersions: string[],
251249
overriden: boolean,
252-
): CompilationJobCreationError {
250+
): taskTypes.CompilationJobCreationError {
253251
const fileVersionRange = file.content.versionPragmas.join(" ");
254252
if (semver.maxSatisfying(compilerVersions, fileVersionRange) === null) {
255253
const reason = overriden

v-next/hardhat-build-system/src/internal/solidity/compiler/compiler-input.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { CompilationJob, CompilerInput } from "../../types/index.js";
1+
import type { CompilationJob, CompilerInput } from "../../types/index.js";
22

33
export function getInputFromCompilationJob(
44
compilationJob: CompilationJob,

v-next/hardhat-build-system/src/internal/solidity/compiler/index.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import type { CompilerInput, CompilerOutput } from "../../types/index.js";
2+
13
import { execFile } from "node:child_process";
24
import * as fs from "node:fs";
35
import os from "node:os";
@@ -11,8 +13,6 @@ import {
1113
import { ensureError } from "@nomicfoundation/hardhat-utils/error";
1214
import * as semver from "semver";
1315

14-
import { CompilerInput, CompilerOutput } from "../../types/index.js";
15-
1616
export interface ICompiler {
1717
compile(input: CompilerInput): Promise<CompilerOutput>;
1818
}

0 commit comments

Comments
 (0)