UNPKG

@overwolf/ow-app-builder-lib

Version:
71 lines 2.75 kB
"use strict"; var _a; Object.defineProperty(exports, "__esModule", { value: true }); exports.PnpmNodeModulesCollector = void 0; const lazy_val_1 = require("lazy-val"); const nodeModulesCollector_1 = require("./nodeModulesCollector"); const path = require("path"); const builder_util_1 = require("builder-util"); class PnpmNodeModulesCollector extends nodeModulesCollector_1.NodeModulesCollector { constructor(rootDir) { super(rootDir); this.pmCommand = _a.pmCommand; this.installOptions = this.pmCommand.value.then(cmd => ({ cmd, args: ["install", "--frozen-lockfile"], lockfile: "pnpm-lock.yaml" })); } getArgs() { return ["list", "--prod", "--json", "--depth", "Infinity"]; } extractRelevantData(npmTree) { const tree = super.extractRelevantData(npmTree); return { ...tree, optionalDependencies: this.extractInternal(npmTree.optionalDependencies), }; } extractProductionDependencyTree(tree) { const p = path.normalize(this.resolvePath(tree.path)); const packageJson = require(path.join(p, "package.json")); const prodDependencies = { ...(packageJson.dependencies || {}), ...(packageJson.optionalDependencies || {}) }; const deps = { ...(tree.dependencies || {}), ...(tree.optionalDependencies || {}) }; const dependencies = Object.entries(deps).reduce((acc, curr) => { const [packageName, dependency] = curr; if (!prodDependencies[packageName]) { return acc; } return { ...acc, [packageName]: this.extractProductionDependencyTree(dependency), }; }, {}); const { name, version, path: packagePath, workspaces } = tree; const depTree = { name, version, path: packagePath, workspaces, dependencies, implicitDependenciesInjected: false, }; return depTree; } parseDependenciesTree(jsonBlob) { const dependencyTree = JSON.parse(jsonBlob); // pnpm returns an array of dependency trees return dependencyTree[0]; } } exports.PnpmNodeModulesCollector = PnpmNodeModulesCollector; _a = PnpmNodeModulesCollector; PnpmNodeModulesCollector.pmCommand = new lazy_val_1.Lazy(async () => { if (process.platform === "win32") { try { await (0, builder_util_1.exec)("pnpm", ["--version"]); } catch (_error) { builder_util_1.log.debug(null, "pnpm not detected, falling back to pnpm.cmd"); return "pnpm.cmd"; } } return "pnpm"; }); //# sourceMappingURL=pnpmNodeModulesCollector.js.map