UNPKG

what-pm

Version:

Detects what package manager was used for installation

170 lines (164 loc) 4.04 kB
'use strict'; var path = require('path'); var fs = require('fs'); var findUp = require('find-up'); var pmInfo = require('pm-info'); var workspaceRoot = require('workspace-root'); function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); } function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; } function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } var cwd = process.cwd(); function whatPM(_x) { return _whatPM.apply(this, arguments); } function _whatPM() { _whatPM = _asyncToGenerator(function* (pkgPath) { if (typeof pkgPath !== "string") { throw new TypeError("pkgPath should be a string, got ".concat(_typeof(pkgPath))); } if (!path.isAbsolute(pkgPath)) pkgPath = path.join(cwd, pkgPath); var isWorkspace = !!(yield workspaceRoot.workspaceRoot(pkgPath)); if (fs.existsSync(path.join(pkgPath, "package-lock.json"))) { return { name: "npm", version: ">=5", isWorkspace }; } if (fs.existsSync(path.join(pkgPath, "yarn.lock"))) { return { name: "yarn", version: "*", isWorkspace }; } if (fs.existsSync(path.join(pkgPath, "pnpm-lock.yaml"))) { return { name: "pnpm", version: ">=3", isWorkspace }; } if (fs.existsSync(path.join(pkgPath, "shrinkwrap.yaml"))) { return { name: "pnpm", version: "1 || 2", isWorkspace }; } if (yield findUp("pnpm-lock.yaml", { cwd: pkgPath })) { return { name: "pnpm", version: ">=3", isWorkspace }; } if (fs.existsSync(path.join(pkgPath, "bun.lockb"))) { return { name: "bun", version: "*", isWorkspace }; } var pm = yield pmInfo.pmInfo(pkgPath); return pm && { name: pm.name, version: pm.version || "*", isWorkspace }; }); return _whatPM.apply(this, arguments); } function whatPMSync(pkgPath) { if (typeof pkgPath !== "string") { throw new TypeError("pkgPath should be a string, got ".concat(_typeof(pkgPath))); } if (!path.isAbsolute(pkgPath)) pkgPath = path.join(cwd, pkgPath); var isWorkspace = !!workspaceRoot.workspaceRootSync(pkgPath); if (fs.existsSync(path.join(pkgPath, "package-lock.json"))) { return { name: "npm", version: ">=5", isWorkspace }; } if (fs.existsSync(path.join(pkgPath, "yarn.lock"))) { return { name: "yarn", version: "*", isWorkspace }; } if (fs.existsSync(path.join(pkgPath, "pnpm-lock.yaml"))) { return { name: "pnpm", version: ">=3", isWorkspace }; } if (fs.existsSync(path.join(pkgPath, "shrinkwrap.yaml"))) { return { name: "pnpm", version: "1 || 2", isWorkspace }; } if (fs.existsSync(path.join(pkgPath, "bun.lockb"))) { return { name: "bun", version: "*", isWorkspace }; } if (findUp.sync("pnpm-lock.yaml", { cwd: pkgPath })) { return { name: "pnpm", version: ">=3", isWorkspace }; } var pm = pmInfo.pmInfoSync(pkgPath); return pm && { name: pm.name, version: pm.version || "*", isWorkspace }; } exports.whatPM = whatPM; exports.whatPMSync = whatPMSync;