Skip to content

Commit

Permalink
Use node:* import protocol for safer module resolution (#3667)
Browse files Browse the repository at this point in the history
This PR uses `node:*` imports for `fs` and `path` modules as specified in [issue 3664](#3664).

Note that using `node:*` imports requires us to whitelist `node:fs` in the `import/core-modules` `eslint` setting. If we do not whitelist it then our linter fails because it can not identify `node:fs` as a node module.
  • Loading branch information
chainoperator committed Jan 28, 2022
1 parent 0fea712 commit 5d92233
Show file tree
Hide file tree
Showing 82 changed files with 120 additions and 117 deletions.
3 changes: 3 additions & 0 deletions .eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,9 @@ module.exports = {
// Prevents accidentally pushing a commit with .only in Mocha tests
"no-only-tests/no-only-tests": "error",
},
settings: {
"import/core-modules": ["node:fs", "node:path"],
},
overrides: [
{
files: ["**/test/**/*.ts"],
Expand Down
2 changes: 1 addition & 1 deletion packages/beacon-state-transition/test/cache.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
import path from "path";
import path from "node:path";

export const testCachePath = path.join(__dirname, "../test-cache");
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import fs from "fs";
import fs from "node:fs";
import {init} from "@chainsafe/bls";
import {getClient} from "@chainsafe/lodestar-api";
import {config} from "@chainsafe/lodestar-config/default";
Expand Down
2 changes: 1 addition & 1 deletion packages/beacon-state-transition/test/perf/csv.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import fs from "fs";
import fs from "node:fs";

const DELIMITER = ",";

Expand Down
4 changes: 2 additions & 2 deletions packages/beacon-state-transition/test/perf/util.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import fs from "fs";
import path from "path";
import fs from "node:fs";
import path from "node:path";
import {config} from "@chainsafe/lodestar-config/default";
import {phase0, ssz, Slot, altair, ParticipationFlags} from "@chainsafe/lodestar-types";
import bls, {CoordType, PublicKey, SecretKey} from "@chainsafe/bls";
Expand Down
4 changes: 2 additions & 2 deletions packages/beacon-state-transition/test/utils/interop.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import fs from "fs";
import path from "path";
import fs from "node:fs";
import path from "node:path";
import {fromHexString, toHexString} from "@chainsafe/ssz";
import {interopSecretKey} from "../../src";
import {testCachePath} from "../cache";
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
import {join} from "path";
import {join} from "node:path";

export const SPEC_TEST_LOCATION = join(__dirname, "../../../../node_modules/@chainsafe/eth2-spec-tests");
4 changes: 2 additions & 2 deletions packages/cli/docsgen/index.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import fs from "fs";
import path from "path";
import fs from "node:fs";
import path from "node:path";
import {Options} from "yargs";
import {omit} from "lodash";
import {cmds} from "../src/cmds";
Expand Down
4 changes: 2 additions & 2 deletions packages/cli/src/cmds/account/cmds/validator/import.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import fs from "fs";
import path from "path";
import fs from "node:fs";
import path from "node:path";
import inquirer from "inquirer";
import {Keystore} from "@chainsafe/bls-keystore";
import {
Expand Down
2 changes: 1 addition & 1 deletion packages/cli/src/cmds/account/cmds/validator/recover.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import * as fs from "fs";
import * as fs from "node:fs";
import {add0xPrefix, ICliCommand, initBLS, randomPassword} from "../../../../util";
import {IGlobalArgs} from "../../../../options";
import inquirer from "inquirer";
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import fs from "fs";
import fs from "node:fs";
import {Interchange} from "@chainsafe/lodestar-validator";
import {ICliCommand} from "../../../../../util";
import {IGlobalArgs} from "../../../../../options";
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import {SlashingProtection, Validator} from "@chainsafe/lodestar-validator";
import {SignerType} from "@chainsafe/lodestar-validator";
import {readdirSync} from "fs";
import {readdirSync} from "node:fs";
import {LevelDbController} from "@chainsafe/lodestar-db";
import inquirer from "inquirer";
import {ICliCommand, initBLS} from "../../../../util";
Expand Down
2 changes: 1 addition & 1 deletion packages/cli/src/cmds/account/cmds/wallet/recover.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import * as fs from "fs";
import * as fs from "node:fs";
import {ICliCommand, initBLS} from "../../../../util";
import {IGlobalArgs} from "../../../../options";
import inquirer from "inquirer";
Expand Down
4 changes: 2 additions & 2 deletions packages/cli/src/cmds/account/cmds/wallet/utils.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import fs from "fs";
import path from "path";
import fs from "node:fs";
import path from "node:path";
import {IGlobalArgs} from "../../../../options";
import {YargsError, writeFile600Perm, randomPassword, readPassphraseFile} from "../../../../util";
import {WalletManager} from "../../../../wallet";
Expand Down
2 changes: 1 addition & 1 deletion packages/cli/src/cmds/account/paths.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import path from "path";
import path from "node:path";
import {IGlobalArgs} from "../../options";
import {IGlobalPaths, getGlobalPaths} from "../../paths/global";

Expand Down
2 changes: 1 addition & 1 deletion packages/cli/src/cmds/beacon/paths.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import path from "path";
import path from "node:path";
import {IGlobalArgs} from "../../options";
import {getGlobalPaths, IGlobalPaths} from "../../paths/global";

Expand Down
4 changes: 2 additions & 2 deletions packages/cli/src/cmds/dev/handler.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import fs from "fs";
import fs from "node:fs";
import {promisify} from "util";
import rimraf from "rimraf";
import path from "path";
import path from "node:path";
import {fromHexString} from "@chainsafe/ssz";
import {AbortController} from "@chainsafe/abort-controller";
import {GENESIS_SLOT} from "@chainsafe/lodestar-params";
Expand Down
2 changes: 1 addition & 1 deletion packages/cli/src/cmds/init/handler.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import fs from "fs";
import fs from "node:fs";
import {BeaconNodeOptions, getBeaconConfigFromArgs, initPeerId, initEnr, readPeerId, readEnr} from "../../config";
import {IGlobalArgs, parseBeaconNodeArgs} from "../../options";
import {mkdir} from "../../util";
Expand Down
4 changes: 2 additions & 2 deletions packages/cli/src/cmds/validator/keys.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import fs from "fs";
import path from "path";
import fs from "node:fs";
import path from "node:path";
import {Keystore} from "@chainsafe/bls-keystore";
import {CoordType, PublicKey, SecretKey} from "@chainsafe/bls";
import {deriveEth2ValidatorKeys, deriveKeyFromMnemonic} from "@chainsafe/bls-keygen";
Expand Down
2 changes: 1 addition & 1 deletion packages/cli/src/cmds/validator/paths.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import path from "path";
import path from "node:path";
import {IGlobalArgs} from "../../options";
import {IGlobalPaths, getGlobalPaths} from "../../paths/global";

Expand Down
2 changes: 1 addition & 1 deletion packages/cli/src/networks/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import {RecursivePartial, fromHex} from "@chainsafe/lodestar-utils";
// eslint-disable-next-line no-restricted-imports
import {getStateTypeFromBytes} from "@chainsafe/lodestar/lib/util/multifork";
import {TreeBacked} from "@chainsafe/ssz";
import fs from "fs";
import fs from "node:fs";
import got from "got";
import * as mainnet from "./mainnet";
import * as pyrmont from "./pyrmont";
Expand Down
2 changes: 1 addition & 1 deletion packages/cli/src/paths/rootDir.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import os from "os";
import path from "path";
import path from "node:path";
import {NetworkName} from "../networks";

/**
Expand Down
2 changes: 1 addition & 1 deletion packages/cli/src/util/ethers.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import fs from "fs";
import fs from "node:fs";
import {ethers} from "ethers";

/**
Expand Down
4 changes: 2 additions & 2 deletions packages/cli/src/util/file.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import fs from "fs";
import path from "path";
import fs from "node:fs";
import path from "node:path";
import stream from "stream";
import {promisify} from "util";
import got from "got";
Expand Down
4 changes: 2 additions & 2 deletions packages/cli/src/util/fs.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import fs from "fs";
import path from "path";
import fs from "node:fs";
import path from "node:path";

/**
* Create a file with `600 (-rw-------)` permissions
Expand Down
4 changes: 2 additions & 2 deletions packages/cli/src/util/gitData/gitDataPath.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
* at what commit was this src build. This is used in the metrics and to log initially.
*/

import path from "path";
import fs from "fs";
import path from "node:path";
import fs from "node:fs";

/**
* WARNING!! If you change this path make sure to update:
Expand Down
2 changes: 1 addition & 1 deletion packages/cli/src/util/passphrase.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import fs from "fs";
import fs from "node:fs";
import {stripOffNewlines} from "./stripOffNewlines";
import {writeFile600Perm} from "./fs";
import {getValidatorPassphrasePath} from "../validatorDir/paths";
Expand Down
4 changes: 2 additions & 2 deletions packages/cli/src/util/recursivelyFind.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import fs from "fs";
import path from "path";
import fs from "node:fs";
import path from "node:path";
import {VOTING_KEYSTORE_FILE} from "../validatorDir/paths";

/**
Expand Down
2 changes: 1 addition & 1 deletion packages/cli/src/util/version.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import fs from "fs";
import fs from "node:fs";
import findUp from "find-up";
import {readLodestarGitData} from "./gitData";
import {GitData} from "./gitData/gitDataPath";
Expand Down
4 changes: 2 additions & 2 deletions packages/cli/src/validatorDir/ValidatorDir.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import fs from "fs";
import path from "path";
import fs from "node:fs";
import path from "node:path";
import bls, {SecretKey} from "@chainsafe/bls";
import {Keystore} from "@chainsafe/bls-keystore";
import {phase0} from "@chainsafe/lodestar-types";
Expand Down
4 changes: 2 additions & 2 deletions packages/cli/src/validatorDir/ValidatorDirBuilder.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import fs from "fs";
import path from "path";
import fs from "node:fs";
import path from "node:path";
import {Keystore} from "@chainsafe/bls-keystore";
import bls from "@chainsafe/bls";
import {IEth2ValidatorKeys} from "@chainsafe/bls-keygen";
Expand Down
4 changes: 2 additions & 2 deletions packages/cli/src/validatorDir/ValidatorDirManager.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import fs from "fs";
import path from "path";
import fs from "node:fs";
import path from "node:path";
import {ValidatorDir, IValidatorDirOptions} from "./ValidatorDir";
import {SecretKey} from "@chainsafe/bls";
import {YargsError} from "../util";
Expand Down
2 changes: 1 addition & 1 deletion packages/cli/src/validatorDir/paths.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import path from "path";
import path from "node:path";
import {add0xPrefix} from "../util/format";

export const VOTING_KEYSTORE_FILE = "voting-keystore.json";
Expand Down
4 changes: 2 additions & 2 deletions packages/cli/src/wallet/WalletManager.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import fs from "fs";
import path from "path";
import fs from "node:fs";
import path from "node:path";
import {isUuid} from "uuidv4";
import {Wallet, IWalletKeystoreJson} from "./Wallet";
import {ensureDirExists, YargsError} from "../util";
Expand Down
4 changes: 2 additions & 2 deletions packages/cli/test/e2e/cmds/account.test.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import fs from "fs";
import path from "path";
import fs from "node:fs";
import path from "node:path";
import rimraf from "rimraf";
import {expect} from "chai";
import {getAccountPaths} from "../../../src/cmds/account/paths";
Expand Down
6 changes: 3 additions & 3 deletions packages/cli/test/unit/config/beaconNodeOptions.test.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import {defaultOptions} from "@chainsafe/lodestar";
import {expect} from "chai";
import fs from "fs";
import path from "path";
import fs from "node:fs";
import path from "node:path";
import {getBeaconPaths} from "../../../src/cmds/beacon/paths";
import {BeaconNodeOptions, mergeBeaconNodeOptions} from "../../../src/config";
import {enrsToNetworkConfig, parseBootnodesFile} from "../../../src/networks";
Expand Down Expand Up @@ -101,7 +101,7 @@ describe("config / bootnodes / parsing", () => {
name: "can parse multiline JSON input",
input: `
{
"enrs":
"enrs":
[
"enr:-cabfg",
"enr:-deadbeef"
Expand Down
2 changes: 1 addition & 1 deletion packages/cli/test/unit/config/beaconParams.test.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import {expect} from "chai";
import fs from "fs";
import fs from "node:fs";
import yaml from "js-yaml";
import {toHexString} from "@chainsafe/ssz";
import {getTestdirPath} from "../../utils";
Expand Down
2 changes: 1 addition & 1 deletion packages/cli/test/unit/config/fileEnr.test.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import {toHexString} from "@chainsafe/ssz";
import {expect} from "chai";
import {before, after} from "mocha";
import {existsSync} from "fs";
import {existsSync} from "node:fs";
import rimraf from "rimraf";
import {initEnr, initPeerId, readPeerId, FileENR} from "../../../src/config";
import {testFilesDir} from "../../utils";
Expand Down
4 changes: 2 additions & 2 deletions packages/cli/test/unit/util/gitData.test.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import {expect} from "chai";
import fs from "fs";
import path from "path";
import fs from "node:fs";
import path from "node:path";
import findUp from "find-up";
import {gitDataPath, readGitDataFile} from "../../../src/util/gitData/gitDataPath";

Expand Down
2 changes: 1 addition & 1 deletion packages/cli/test/unit/validator/keys.test.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import {expect} from "chai";
import sinon from "sinon";
import fs, {Dirent, Stats} from "fs";
import fs, {Dirent, Stats} from "node:fs";
import {resolveKeystorePaths} from "../../../src/cmds/validator/keys";

describe("validator / keys / resolveKeystorePaths", () => {
Expand Down
4 changes: 2 additions & 2 deletions packages/cli/test/utils.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import fs from "fs";
import path from "path";
import fs from "node:fs";
import path from "node:path";
import tmp from "tmp";

const tmpDir = tmp.dirSync({unsafeCleanup: true});
Expand Down
2 changes: 1 addition & 1 deletion packages/lodestar/src/api/impl/lodestar/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ export function getLodestarApi({
throw Error("Already writing heapdump");
}
// Lazily import NodeJS only modules
const fs = await import("fs");
const fs = await import("node:fs");
const v8 = await import("v8");
const snapshotStream = v8.getHeapSnapshot();
// It's important that the filename end with `.heapsnapshot`,
Expand Down
2 changes: 1 addition & 1 deletion packages/lodestar/src/chain/chain.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
* @module chain
*/

import fs from "fs";
import fs from "node:fs";
import {CachedBeaconStateAllForks, computeStartSlotAtEpoch} from "@chainsafe/lodestar-beacon-state-transition";
import {IBeaconConfig} from "@chainsafe/lodestar-config";
import {IForkChoice} from "@chainsafe/lodestar-fork-choice";
Expand Down
4 changes: 2 additions & 2 deletions packages/lodestar/src/node/utils/state.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ import {IBeaconConfig, IChainForkConfig} from "@chainsafe/lodestar-config";
import {allForks, phase0, ssz} from "@chainsafe/lodestar-types";
import {interopDeposits} from "./interop/deposits";
import {getInteropState, InteropStateOpts} from "./interop/state";
import {mkdirSync, writeFileSync} from "fs";
import {dirname} from "path";
import {mkdirSync, writeFileSync} from "node:fs";
import {dirname} from "node:path";
import {IBeaconDb} from "../../db";
import {TreeBacked} from "@chainsafe/ssz";
import {GENESIS_SLOT} from "../../constants";
Expand Down
4 changes: 2 additions & 2 deletions packages/lodestar/src/util/file.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
* @module util/file
*/

import fs from "fs";
import path from "path";
import fs from "node:fs";
import path from "node:path";

/**
* Recursively ensures directory exists by creating any missing directories
Expand Down
2 changes: 1 addition & 1 deletion packages/lodestar/test/scripts/blsPubkeyBytesFrequency.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import fs from "fs";
import fs from "node:fs";
import {getClient} from "@chainsafe/lodestar-api";
import {config} from "@chainsafe/lodestar-config/default";
import {newZeroedArray} from "@chainsafe/lodestar-beacon-state-transition";
Expand Down
2 changes: 1 addition & 1 deletion packages/lodestar/test/sim/merge-interop.test.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import fs from "fs";
import fs from "node:fs";
import net from "net";
import {spawn} from "child_process";
import {Context} from "mocha";
Expand Down
2 changes: 1 addition & 1 deletion packages/lodestar/test/sim/multiNodeMultiThread.test.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import path from "path";
import path from "node:path";
import os from "os";
import {Worker} from "worker_threads";
import {phase0} from "@chainsafe/lodestar-types";
Expand Down
2 changes: 1 addition & 1 deletion packages/lodestar/test/sim/threaded/worker.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const path = require("path");
const path = require("node:path");
const {workerData} = require("worker_threads");

require("ts-node").register();
Expand Down
4 changes: 2 additions & 2 deletions packages/lodestar/test/spec/allForks/epochProcessing.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import {join} from "path";
import fs from "fs";
import {join} from "node:path";
import fs from "node:fs";

import {CachedBeaconStateAllForks, allForks} from "@chainsafe/lodestar-beacon-state-transition";
import {describeDirectorySpecTest} from "@chainsafe/lodestar-spec-test-util";
Expand Down
2 changes: 1 addition & 1 deletion packages/lodestar/test/spec/allForks/finality.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import {join} from "path";
import {join} from "node:path";
import {TreeBacked} from "@chainsafe/ssz";
import {CachedBeaconStateAllForks, allForks, altair} from "@chainsafe/lodestar-beacon-state-transition";
import {describeDirectorySpecTest} from "@chainsafe/lodestar-spec-test-util";
Expand Down
2 changes: 1 addition & 1 deletion packages/lodestar/test/spec/allForks/forkChoice.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import {join} from "path";
import {join} from "node:path";
import {expect} from "chai";
import {
createCachedBeaconState,
Expand Down
Loading

0 comments on commit 5d92233

Please sign in to comment.