1"use strict";
2var __importDefault = (this && this.__importDefault) || function (mod) {
3    return (mod && mod.__esModule) ? mod : { "default": mod };
4};
5Object.defineProperty(exports, "__esModule", { value: true });
6exports.PnpmPackageManager = void 0;
7const BasePackageManager_1 = require("./BasePackageManager");
8const env_1 = __importDefault(require("../utils/env"));
9const nodeWorkspaces_1 = require("../utils/nodeWorkspaces");
10class PnpmPackageManager extends BasePackageManager_1.BasePackageManager {
11    name = 'pnpm';
12    bin = 'pnpm';
13    lockFile = nodeWorkspaces_1.PNPM_LOCK_FILE;
14    workspaceRoot() {
15        const root = (0, nodeWorkspaces_1.findPnpmWorkspaceRoot)(this.ensureCwdDefined('workspaceRoot'));
16        if (root) {
17            return new PnpmPackageManager({
18                ...this.options,
19                silent: this.silent,
20                log: this.log,
21                cwd: root,
22            });
23        }
24        return null;
25    }
26    installAsync(namesOrFlags = []) {
27        if (env_1.default.CI && !namesOrFlags.join(' ').includes('frozen-lockfile')) {
28            namesOrFlags.unshift('--no-frozen-lockfile');
29        }
30        return this.runAsync(['install', ...namesOrFlags]);
31    }
32    addAsync(namesOrFlags = []) {
33        if (!namesOrFlags.length) {
34            return this.installAsync();
35        }
36        return this.runAsync(['add', ...namesOrFlags]);
37    }
38    addDevAsync(namesOrFlags = []) {
39        if (!namesOrFlags.length) {
40            return this.installAsync();
41        }
42        return this.runAsync(['add', '--save-dev', ...namesOrFlags]);
43    }
44    addGlobalAsync(namesOrFlags = []) {
45        if (!namesOrFlags.length) {
46            return this.installAsync();
47        }
48        return this.runAsync(['add', '--global', ...namesOrFlags]);
49    }
50    removeAsync(namesOrFlags) {
51        return this.runAsync(['remove', ...namesOrFlags]);
52    }
53    removeDevAsync(namesOrFlags) {
54        return this.runAsync(['remove', '--save-dev', ...namesOrFlags]);
55    }
56    removeGlobalAsync(namesOrFlags) {
57        return this.runAsync(['remove', '--global', ...namesOrFlags]);
58    }
59}
60exports.PnpmPackageManager = PnpmPackageManager;
61//# sourceMappingURL=PnpmPackageManager.js.map