findExecutable.ts
1 import { whichSync } from './which.js' 2 3 /** 4 * Find an executable by searching PATH, similar to `which`. 5 * Replaces spawn-rx's findActualExecutable to avoid pulling in rxjs (~313 KB). 6 * 7 * Returns { cmd, args } to match the spawn-rx API shape. 8 * `cmd` is the resolved path if found, or the original name if not. 9 * `args` is always the pass-through of the input args. 10 */ 11 export function findExecutable( 12 exe: string, 13 args: string[], 14 ): { cmd: string; args: string[] } { 15 const resolved = whichSync(exe) 16 return { cmd: resolved ?? exe, args } 17 }