UNPKG

@ts-dev-tools/core

Version:
44 lines (43 loc) 2.23 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.PackageManagerService = exports.PackageManagerType = void 0; const node_fs_1 = require("node:fs"); const node_path_1 = require("node:path"); const NpmPackageManagerAdapter_1 = require("./package-manager/NpmPackageManagerAdapter"); const PackageManagerType_1 = require("./package-manager/PackageManagerType"); const YarnPackageManagerAdapter_1 = require("./package-manager/YarnPackageManagerAdapter"); var PackageManagerType_2 = require("./package-manager/PackageManagerType"); Object.defineProperty(exports, "PackageManagerType", { enumerable: true, get: function () { return PackageManagerType_2.PackageManagerType; } }); class PackageManagerService { constructor() { } static detectPackageManager(dirPath) { if ((0, node_fs_1.existsSync)((0, node_path_1.join)(dirPath, "yarn.lock"))) { return PackageManagerType_1.PackageManagerType.yarn; } return PackageManagerType_1.PackageManagerType.npm; } static async addDevPackage(packageName, dirPath) { return PackageManagerService.getAdapter(dirPath).addDevPackage(packageName, dirPath); } static async isMonorepo(dirPath) { return PackageManagerService.getAdapter(dirPath).isMonorepo(dirPath); } static async isPackageInstalled(packageName, dirPath) { return PackageManagerService.getAdapter(dirPath).isPackageInstalled(packageName, dirPath); } static async getNodeModulesPath(dirPath) { return PackageManagerService.getAdapter(dirPath).getNodeModulesPath(dirPath); } static getAdapter(dirPath) { const packageManager = PackageManagerService.detectPackageManager(dirPath); switch (packageManager) { case PackageManagerType_1.PackageManagerType.yarn: return new YarnPackageManagerAdapter_1.YarnPackageManagerAdapter(); case PackageManagerType_1.PackageManagerType.npm: return new NpmPackageManagerAdapter_1.NpmPackageManagerAdapter(); default: throw new Error(`Unsupported package manager: ${packageManager}`); } } } exports.PackageManagerService = PackageManagerService;