18d3f3824SCedric van Putten"use strict"; 28d3f3824SCedric van Puttenvar __importDefault = (this && this.__importDefault) || function (mod) { 38d3f3824SCedric van Putten return (mod && mod.__esModule) ? mod : { "default": mod }; 48d3f3824SCedric van Putten}; 58d3f3824SCedric van PuttenObject.defineProperty(exports, "__esModule", { value: true }); 68d3f3824SCedric van Puttenexports.BasePackageManager = void 0; 78d3f3824SCedric van Puttenconst spawn_async_1 = __importDefault(require("@expo/spawn-async")); 88d3f3824SCedric van Puttenconst assert_1 = __importDefault(require("assert")); 98d3f3824SCedric van Puttenconst fs_1 = __importDefault(require("fs")); 108d3f3824SCedric van Puttenconst path_1 = __importDefault(require("path")); 118d3f3824SCedric van Puttenclass BasePackageManager { 12*1a3a1db5SEvan Bacon silent; 13*1a3a1db5SEvan Bacon log; 14*1a3a1db5SEvan Bacon options; 158d3f3824SCedric van Putten constructor({ silent, log, env = process.env, ...options } = {}) { 168d3f3824SCedric van Putten this.silent = !!silent; 178d3f3824SCedric van Putten this.log = log ?? (!silent ? console.log : undefined); 188d3f3824SCedric van Putten this.options = { 19efdcf92fSCedric van Putten stdio: silent ? undefined : 'inherit', 208d3f3824SCedric van Putten ...options, 218d3f3824SCedric van Putten env: { ...this.getDefaultEnvironment(), ...env }, 228d3f3824SCedric van Putten }; 238d3f3824SCedric van Putten } 248d3f3824SCedric van Putten /** Get the default environment variables used when running the package manager. */ 258d3f3824SCedric van Putten getDefaultEnvironment() { 268d3f3824SCedric van Putten return { 278d3f3824SCedric van Putten ADBLOCK: '1', 288d3f3824SCedric van Putten DISABLE_OPENCOLLECTIVE: '1', 298d3f3824SCedric van Putten }; 308d3f3824SCedric van Putten } 318d3f3824SCedric van Putten /** Ensure the CWD is set to a non-empty string */ 328d3f3824SCedric van Putten ensureCwdDefined(method) { 338d3f3824SCedric van Putten const cwd = this.options.cwd?.toString(); 348d3f3824SCedric van Putten const className = this.constructor.name; 358d3f3824SCedric van Putten const methodName = method ? `.${method}` : ''; 368d3f3824SCedric van Putten (0, assert_1.default)(cwd, `cwd is required for ${className}${methodName}`); 378d3f3824SCedric van Putten return cwd; 388d3f3824SCedric van Putten } 398d3f3824SCedric van Putten runAsync(command) { 408d3f3824SCedric van Putten this.log?.(`> ${this.name} ${command.join(' ')}`); 41efdcf92fSCedric van Putten return (0, spawn_async_1.default)(this.bin, command, this.options); 428d3f3824SCedric van Putten } 438d3f3824SCedric van Putten async versionAsync() { 448d3f3824SCedric van Putten return await this.runAsync(['--version']).then(({ stdout }) => stdout.trim()); 458d3f3824SCedric van Putten } 468d3f3824SCedric van Putten async getConfigAsync(key) { 478d3f3824SCedric van Putten return await this.runAsync(['config', 'get', key]).then(({ stdout }) => stdout.trim()); 488d3f3824SCedric van Putten } 498d3f3824SCedric van Putten async removeLockfileAsync() { 508d3f3824SCedric van Putten const cwd = this.ensureCwdDefined('removeLockFile'); 518d3f3824SCedric van Putten const filePath = path_1.default.join(cwd, this.lockFile); 528d3f3824SCedric van Putten await fs_1.default.promises.rm(filePath, { force: true }); 538d3f3824SCedric van Putten } 548d3f3824SCedric van Putten installAsync(flags = []) { 558d3f3824SCedric van Putten return this.runAsync(['install', ...flags]); 568d3f3824SCedric van Putten } 578d3f3824SCedric van Putten async uninstallAsync() { 588d3f3824SCedric van Putten const cwd = this.ensureCwdDefined('uninstallAsync'); 598d3f3824SCedric van Putten const modulesPath = path_1.default.join(cwd, 'node_modules'); 608d3f3824SCedric van Putten await fs_1.default.promises.rm(modulesPath, { force: true, recursive: true }); 618d3f3824SCedric van Putten } 628d3f3824SCedric van Putten} 638d3f3824SCedric van Puttenexports.BasePackageManager = BasePackageManager; 648d3f3824SCedric van Putten//# sourceMappingURL=BasePackageManager.js.map