From ea6c88f8833ed608c6a916176a483b14f76ae4f7 Mon Sep 17 00:00:00 2001 From: Raine Revere Date: Sun, 17 Sep 2023 14:31:11 +0000 Subject: [PATCH] Move prefix initialization to initOptions. --- src/index.ts | 10 ---------- src/lib/initOptions.ts | 9 +++++++++ 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/src/index.ts b/src/index.ts index aedb15a1..0d2c0e15 100755 --- a/src/index.ts +++ b/src/index.ts @@ -17,7 +17,6 @@ import mergeOptions from './lib/mergeOptions' import programError from './lib/programError' import runGlobal from './lib/runGlobal' import runLocal from './lib/runLocal' -import packageManagers from './package-managers' import { Index } from './types/IndexType' import { Options } from './types/Options' import { PackageFile } from './types/PackageFile' @@ -283,15 +282,6 @@ export async function run( await cacheClear(options) } - if (!options.prefix) { - const defaultPrefix = - packageManagers[options.packageManager || '']?.defaultPrefix || packageManagers.npm.defaultPrefix! - const prefix = await defaultPrefix(options) - if (prefix) { - options.prefix = prefix - } - } - let timeout: NodeJS.Timeout | undefined let timeoutPromise: Promise = new Promise(() => null) if (options.timeout) { diff --git a/src/lib/initOptions.ts b/src/lib/initOptions.ts index 2b854a97..faa1aacd 100644 --- a/src/lib/initOptions.ts +++ b/src/lib/initOptions.ts @@ -2,6 +2,7 @@ import isEqual from 'lodash/isEqual' import propertyOf from 'lodash/propertyOf' import cliOptions, { cliOptionsMap } from '../cli-options' import { print } from '../lib/logging' +import packageManagers from '../package-managers' import { FilterPattern } from '../types/FilterPattern' import { Options } from '../types/Options' import { RunOptions } from '../types/RunOptions' @@ -188,6 +189,14 @@ async function initOptions(runOptions: RunOptions, { cli }: { cli?: boolean } = // imply upgrade in interactive mode when json is not specified as the output ...(options.interactive && options.upgrade === undefined ? { upgrade: !json } : null), packageManager, + ...(options.prefix + ? { + // use the npm prefix if the package manager does not define defaultPrefix + prefix: await (packageManagers[packageManager || '']?.defaultPrefix || packageManagers.npm.defaultPrefix!)( + options, + ), + } + : null), registryType: options.registryType || (options.registry?.endsWith('.json') ? 'json' : 'npm'), } resolvedOptions.cacher = await cacher(resolvedOptions)