libyear
Version:
A simple measure of software dependency freshness
29 lines (28 loc) • 859 B
JavaScript
import * as path from "node:path";
import { satisfies } from "semver";
import { execute } from "./execute.js";
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")) {
return satisfies(await execute("yarn --version"), "^0 || ^1")
? "yarn"
: "berry";
}
else if (packageManager.startsWith("pnpm")) {
return Promise.resolve("pnpm");
}
else {
return Promise.resolve(getParsedPackageManager(packageManager));
}
};