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    name = 'bun';
8    bin = 'bun';
9    lockFile = nodeWorkspaces_1.BUN_LOCK_FILE;
10    workspaceRoot() {
11        const root = (0, nodeWorkspaces_1.findYarnOrNpmWorkspaceRoot)(this.ensureCwdDefined('workspaceRoot'));
12        if (root) {
13            return new BunPackageManager({
14                ...this.options,
15                silent: this.silent,
16                log: this.log,
17                cwd: root,
18            });
19        }
20        return null;
21    }
22    installAsync(namesOrFlags = []) {
23        return this.runAsync(['install', ...namesOrFlags]);
24    }
25    addAsync(namesOrFlags = []) {
26        if (!namesOrFlags.length) {
27            return this.installAsync();
28        }
29        return this.runAsync(['add', ...namesOrFlags]);
30    }
31    addDevAsync(namesOrFlags = []) {
32        if (!namesOrFlags.length) {
33            return this.installAsync();
34        }
35        return this.runAsync(['add', '--dev', ...namesOrFlags]);
36    }
37    addGlobalAsync(namesOrFlags = []) {
38        if (!namesOrFlags.length) {
39            return this.installAsync();
40        }
41        return this.runAsync(['add', '--global', ...namesOrFlags]);
42    }
43    removeAsync(namesOrFlags) {
44        return this.runAsync(['remove', ...namesOrFlags]);
45    }
46    removeDevAsync(namesOrFlags) {
47        return this.runAsync(['remove', ...namesOrFlags]);
48    }
49    removeGlobalAsync(namesOrFlags) {
50        return this.runAsync(['remove', '--global', ...namesOrFlags]);
51    }
52}
53exports.BunPackageManager = BunPackageManager;
54//# sourceMappingURL=BunPackageManager.js.map