1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.BunPackageManager = void 0;
4const BasePackageManager_1 = require("./BasePackageManager");
5const nodeWorkspaces_1 = require("../utils/nodeWorkspaces");
6class BunPackageManager extends BasePackageManager_1.BasePackageManager {
7    constructor() {
8        super(...arguments);
9        this.name = 'bun';
10        this.bin = 'bun';
11        this.lockFile = nodeWorkspaces_1.BUN_LOCK_FILE;
12    }
13    workspaceRoot() {
14        const root = (0, nodeWorkspaces_1.findYarnOrNpmWorkspaceRoot)(this.ensureCwdDefined('workspaceRoot'));
15        if (root) {
16            return new BunPackageManager({
17                ...this.options,
18                silent: this.silent,
19                log: this.log,
20                cwd: root,
21            });
22        }
23        return null;
24    }
25    installAsync(namesOrFlags = []) {
26        return this.runAsync(['install', ...namesOrFlags]);
27    }
28    addAsync(namesOrFlags = []) {
29        if (!namesOrFlags.length) {
30            return this.installAsync();
31        }
32        return this.runAsync(['add', ...namesOrFlags]);
33    }
34    addDevAsync(namesOrFlags = []) {
35        if (!namesOrFlags.length) {
36            return this.installAsync();
37        }
38        return this.runAsync(['add', '--dev', ...namesOrFlags]);
39    }
40    addGlobalAsync(namesOrFlags = []) {
41        if (!namesOrFlags.length) {
42            return this.installAsync();
43        }
44        return this.runAsync(['add', '--global', ...namesOrFlags]);
45    }
46    removeAsync(namesOrFlags) {
47        return this.runAsync(['remove', ...namesOrFlags]);
48    }
49    removeDevAsync(namesOrFlags) {
50        return this.runAsync(['remove', ...namesOrFlags]);
51    }
52    removeGlobalAsync(namesOrFlags) {
53        return this.runAsync(['remove', '--global', ...namesOrFlags]);
54    }
55}
56exports.BunPackageManager = BunPackageManager;
57//# sourceMappingURL=BunPackageManager.js.map