which.ts 536 B

1234567891011121314
  1. import whichPkg from "which"
  2. import path from "path"
  3. import { Global } from "../global"
  4. export function which(cmd: string, env?: NodeJS.ProcessEnv) {
  5. const base = env?.PATH ?? env?.Path ?? process.env.PATH ?? process.env.Path ?? ""
  6. const full = base ? base + path.delimiter + Global.Path.bin : Global.Path.bin
  7. const result = whichPkg.sync(cmd, {
  8. nothrow: true,
  9. path: full,
  10. pathExt: env?.PATHEXT ?? env?.PathExt ?? process.env.PATHEXT ?? process.env.PathExt,
  11. })
  12. return typeof result === "string" ? result : null
  13. }