@ts-dev-tools/core
Version:
TS dev tools Core
44 lines (43 loc) • 2.23 kB
JavaScript
;
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;