UNPKG

libyear

Version:

A simple measure of software dependency freshness

29 lines (28 loc) 911 B
import * as path from "node:path"; import { execaCommand } from "execa"; import { default as semver } from "semver"; const { satisfies } = semver; export const getParsedPackageManager = (packageManager) => { switch (packageManager) { case "berry": case "npm": case "pnpm": case "yarn": return packageManager; default: return "npm"; } }; export const getInferredPackageManager = async () => { const packageManager = path.basename(process.env.npm_execpath || "npm"); if (packageManager.startsWith("yarn")) { const { stdout } = await execaCommand("yarn --version"); return satisfies(stdout, "^0 || ^1") ? "yarn" : "berry"; } else if (packageManager.startsWith("pnpm")) { return Promise.resolve("pnpm"); } else { return Promise.resolve(getParsedPackageManager(packageManager)); } };