@wocker/ws
Version:
Docker workspace for web projects
31 lines (30 loc) • 1.18 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.PnpmProvider = void 0;
const PackageManagerProvider_1 = require("../types/PackageManagerProvider");
const utils_1 = require("../../../utils");
class PnpmProvider extends PackageManagerProvider_1.PackageManagerProvider {
async getPackages() {
const res = await (0, utils_1.exec)("pnpm ls -g --json"), data = JSON.parse(res), dependencies = Array.isArray(data) ? data[0]?.dependencies : data.dependencies, packages = [];
if (dependencies) {
for (const name in dependencies) {
packages.push({
name,
version: dependencies[name].version
});
}
}
return packages;
}
async install(name, version) {
const command = `pnpm add -g ${version ? `${name}@${version}` : name}`;
console.info(`> ${command}`);
await (0, utils_1.exec)(command);
}
async uninstall(name) {
const command = `pnpm remove -g ${name}`;
console.info(`> ${command}`);
await (0, utils_1.exec)(command);
}
}
exports.PnpmProvider = PnpmProvider;