diff --git a/cli/run/getConfigPath.ts b/cli/run/getConfigPath.ts index 322b363d358..c9a29dba737 100644 --- a/cli/run/getConfigPath.ts +++ b/cli/run/getConfigPath.ts @@ -1,13 +1,13 @@ -import { readdirSync } from 'fs'; +import { promises as fs } from 'fs'; import { resolve } from 'path'; import { cwd } from 'process'; import { handleError } from '../logging'; const DEFAULT_CONFIG_BASE = 'rollup.config'; -export function getConfigPath(commandConfig: string | true): string { +export async function getConfigPath(commandConfig: string | true): Promise { if (commandConfig === true) { - return resolve(findConfigFileNameInCwd()); + return resolve(await findConfigFileNameInCwd()); } if (commandConfig.slice(0, 5) === 'node:') { const pkgName = commandConfig.slice(5); @@ -30,8 +30,8 @@ export function getConfigPath(commandConfig: string | true): string { return resolve(commandConfig); } -function findConfigFileNameInCwd(): string { - const filesInWorkingDir = new Set(readdirSync(cwd())); +async function findConfigFileNameInCwd(): Promise { + const filesInWorkingDir = new Set(await fs.readdir(cwd())); for (const extension of ['mjs', 'cjs', 'ts']) { const fileName = `${DEFAULT_CONFIG_BASE}.${extension}`; if (filesInWorkingDir.has(fileName)) return fileName; diff --git a/cli/run/index.ts b/cli/run/index.ts index ed4478fa6d4..44278c1b90a 100644 --- a/cli/run/index.ts +++ b/cli/run/index.ts @@ -89,7 +89,7 @@ async function getConfigs( command: any ): Promise<{ options: MergedRollupOptions[]; warnings: BatchWarnings }> { if (command.config) { - const configFile = getConfigPath(command.config); + const configFile = await getConfigPath(command.config); const { options, warnings } = await loadAndParseConfigFile(configFile, command); return { options, warnings }; } diff --git a/cli/run/loadConfigFile.ts b/cli/run/loadConfigFile.ts index 0f80b9a8c8b..83db5290228 100644 --- a/cli/run/loadConfigFile.ts +++ b/cli/run/loadConfigFile.ts @@ -1,4 +1,4 @@ -import { realpathSync } from 'fs'; +import { promises as fs } from 'fs'; import { extname, isAbsolute } from 'path'; import { pathToFileURL } from 'url'; import * as rollup from '../../src/node-entry'; @@ -57,7 +57,7 @@ async function loadConfigFile( return getConfigList(configFileExport, commandOptions); } -function getDefaultFromCjs(namespace: GenericConfigObject) { +function getDefaultFromCjs(namespace: GenericConfigObject): unknown { return namespace.__esModule ? namespace.default : namespace; } @@ -103,7 +103,7 @@ async function getDefaultFromTranspiledConfigFile( } async function loadConfigFromBundledFile(fileName: string, bundledCode: string): Promise { - const resolvedFileName = realpathSync(fileName); + const resolvedFileName = await fs.realpath(fileName); const extension = extname(resolvedFileName); const defaultLoader = require.extensions[extension]; require.extensions[extension] = (module: NodeModule, requiredFileName: string) => { diff --git a/cli/run/watch-cli.ts b/cli/run/watch-cli.ts index 6224cfefce6..cd845424eff 100644 --- a/cli/run/watch-cli.ts +++ b/cli/run/watch-cli.ts @@ -1,4 +1,4 @@ -import { type FSWatcher, readFileSync } from 'fs'; +import { promises as fs, type FSWatcher } from 'fs'; import process from 'process'; import chokidar from 'chokidar'; import dateTime from 'date-time'; @@ -23,7 +23,7 @@ export async function watch(command: Record): Promise { let watcher: RollupWatcher; let configWatcher: FSWatcher; let resetScreen: (heading: string) => void; - const configFile = command.config ? getConfigPath(command.config) : null; + const configFile = command.config ? await getConfigPath(command.config) : null; onExit(close); process.on('uncaughtException', close); @@ -41,7 +41,7 @@ export async function watch(command: Record): Promise { async function reloadConfigFile() { try { - const newConfigFileData = readFileSync(configFile, 'utf-8'); + const newConfigFileData = await fs.readFile(configFile, 'utf8'); if (newConfigFileData === configFileData) { return; }