UNPKG

tsdk

Version:

Type-safe API development and code share tool for TypeScript projects.

69 lines (68 loc) 2.27 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.getNpmCommand = exports.getPkgManager = void 0; const child_process_1 = require("child_process"); const fs_1 = __importDefault(require("fs")); const path_1 = __importDefault(require("path")); function getPkgManager(baseDir) { try { for (const { lockFile, packageManager } of [ { lockFile: 'yarn.lock', packageManager: 'yarn' }, { lockFile: 'pnpm-lock.yaml', packageManager: 'pnpm' }, { lockFile: 'package-lock.json', packageManager: 'npm' }, ]) { if (fs_1.default.existsSync(path_1.default.join(baseDir, lockFile))) { return packageManager; } } const userAgent = process.env.npm_config_user_agent; if (userAgent) { if (userAgent.startsWith('yarn')) { return 'yarn'; } else if (userAgent.startsWith('pnpm')) { return 'pnpm'; } } try { (0, child_process_1.execSync)('yarn --version', { stdio: 'ignore' }); return 'yarn'; } catch (_a) { (0, child_process_1.execSync)('pnpm --version', { stdio: 'ignore' }); return 'pnpm'; } } catch (_b) { return 'npm'; } } exports.getPkgManager = getPkgManager; function getNpmCommand(baseDir) { const pkgManager = getPkgManager(baseDir); const commandMap = { pkg: pkgManager, npxCmd: 'npx', installCmd: 'npm install', runCmd: 'npm run', }; if (pkgManager === 'pnpm') { commandMap.npxCmd = 'pnpm'; commandMap.installCmd = 'pnpm install'; commandMap.runCmd = 'pnpm'; } else if (pkgManager === 'yarn') { try { (0, child_process_1.execSync)('yarn dlx --help', { stdio: 'ignore' }); commandMap.npxCmd = 'yarn'; commandMap.installCmd = 'yarn'; commandMap.runCmd = 'yarn'; } catch (_a) { } } return commandMap; } exports.getNpmCommand = getNpmCommand;