@antfu/ni
Version:
Use the right package manager
110 lines (109 loc) • 4.49 kB
text/typescript
import * as package_manager_detector0 from "package-manager-detector";
import { Agent, Command, ResolvedCommand } from "package-manager-detector";
import { Buffer } from "node:buffer";
export * from "package-manager-detector/constants";
export * from "package-manager-detector/commands";
//#region src/config.d.ts
interface Config {
defaultAgent: Agent | 'prompt';
globalAgent: Agent;
runAgent: 'node' | undefined;
useSfw: boolean;
catalog: boolean;
}
declare function getConfig(): Promise<Config>;
declare function getDefaultAgent(programmatic?: boolean): Promise<Agent | "prompt">;
declare function getGlobalAgent(): Promise<Agent>;
declare function getRunAgent(): Promise<"node" | undefined>;
declare function getUseSfw(): Promise<boolean>;
declare function getCatalog(): Promise<boolean>;
//#endregion
//#region src/detect.d.ts
interface DetectOptions {
autoInstall?: boolean;
programmatic?: boolean;
cwd?: string;
/**
* Should use Volta when present
*
* @see https://volta.sh/
* @default true
*/
detectVolta?: boolean;
}
declare function detect({
autoInstall,
programmatic,
cwd
}?: DetectOptions): Promise<package_manager_detector0.Agent | undefined>;
//#endregion
//#region src/runner.d.ts
interface RunnerContext {
programmatic?: boolean;
hasLock?: boolean;
cwd?: string;
}
interface ExtendedResolvedCommand extends ResolvedCommand {
cwd?: string;
}
interface RunOptions {
/**
* Called before agent detection and command execution.
*
* Useful for performing concrete, agent-agnostic operations.
*/
onBeforeCommand?: (args: string[], ctx: Pick<RunnerContext, 'cwd' | 'programmatic'> & {
/**
* Skips subsequent command execution.
*
* This is useful for operations such as generating shell-completion scripts.
*/
exit: () => void;
}) => void | Promise<void>;
}
type Runner = (agent: Agent, args: string[], ctx?: RunnerContext) => Promise<ExtendedResolvedCommand | undefined> | ExtendedResolvedCommand | undefined;
declare function runCli(fn: Runner, options?: DetectOptions & RunOptions & {
args?: string[];
}): Promise<void>;
declare function getCliCommand(fn: Runner, args: string[], options?: DetectOptions, cwd?: string): Promise<ExtendedResolvedCommand | undefined>;
declare function run(fn: Runner, args: string[], options?: DetectOptions & RunOptions): Promise<void>;
//#endregion
//#region src/parse.d.ts
declare class UnsupportedCommand extends Error {
constructor({
agent,
command
}: {
agent: Agent;
command: Command;
});
}
declare function getCommand(agent: Agent, command: Command, args?: string[]): ExtendedResolvedCommand;
declare const parseNi: Runner;
declare const parseNr: Runner;
declare const parseNup: Runner;
declare const parseNd: Runner;
declare const parseNun: Runner;
declare const parseNlx: Runner;
declare const parseNa: Runner;
declare function serializeCommand(command?: ResolvedCommand): string | undefined;
//#endregion
//#region src/utils.d.ts
declare const CLI_TEMP_DIR: string;
declare function remove<T>(arr: T[], v: T): T[];
declare function exclude<T>(arr: T[], ...v: T[]): T[];
declare function cmdExists(cmd: string): boolean;
/**
* Write file safely avoiding conflicts
*/
declare function writeFileSafe(path: string, data?: string | Buffer): Promise<boolean>;
declare function limitText(text: string, maxWidth: number): string;
declare function terminalLink(text: string, url: string, options?: {
fallback?: (text: string, url: string) => string;
}): string;
declare function formatPackageWithUrl(pkg: string, url?: string, limits?: number): string;
declare namespace index_d_exports {
export { CLI_TEMP_DIR, DetectOptions, ExtendedResolvedCommand, Runner, RunnerContext, UnsupportedCommand, cmdExists, detect, exclude, formatPackageWithUrl, getCatalog, getCliCommand, getCommand, getConfig, getDefaultAgent, getGlobalAgent, getRunAgent, getUseSfw, limitText, parseNa, parseNd, parseNi, parseNlx, parseNr, parseNun, parseNup, remove, run, runCli, serializeCommand, terminalLink, writeFileSafe };
}
//#endregion
export { CLI_TEMP_DIR, DetectOptions, ExtendedResolvedCommand, Runner, RunnerContext, UnsupportedCommand, cmdExists, detect, exclude, formatPackageWithUrl, getCatalog, getCliCommand, getCommand, getConfig, getDefaultAgent, getGlobalAgent, getRunAgent, getUseSfw, limitText, parseNa, parseNd, parseNi, parseNlx, parseNr, parseNun, parseNup, remove, run, runCli, serializeCommand, terminalLink, writeFileSafe };