fnspm
Version:
A unified command-line interface for managing packages across multiple package managers (npm, yarn, pnpm, bun, and deno) with macOS optimization for iCloud sync and automatic package manager detection.
30 lines (29 loc) • 1.11 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.VALID_PACKAGE_MANAGERS = void 0;
exports.PackageManagerFactory = PackageManagerFactory;
const package_managers_1 = require("../utils/package-managers");
const bun_1 = require("./bun");
const deno_1 = require("./deno");
const npm_1 = require("./npm");
const pnpm_1 = require("./pnpm");
const yarn_1 = require("./yarn");
exports.VALID_PACKAGE_MANAGERS = Object.keys(package_managers_1.PACKAGE_MANAGERS);
function PackageManagerFactory(packageManager) {
// If it's a lock file, convert it to package manager type
const pmType = package_managers_1.LOCK_FILE_TO_PM_MAP[packageManager] || packageManager;
switch (pmType) {
case 'npm':
return new npm_1.NodePM();
case 'yarn':
return new yarn_1.YarnPM();
case 'pnpm':
return new pnpm_1.PNodePM();
case 'bun':
return new bun_1.BunPM();
case 'deno':
return new deno_1.DenoPM();
default:
throw new Error(`Unsupported package manager: ${pmType}`);
}
}