UNPKG

dotnet-deps-parser

Version:

Generate a dep tree given a collection of manifests

43 lines 2.71 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getDependencyTreeFromProjectAssetsJson = void 0; function getProjectNameForProjectAssetsJson(manifestFile) { var _a, _b, _c; return (_c = (_b = (_a = manifestFile === null || manifestFile === void 0 ? void 0 : manifestFile.project) === null || _a === void 0 ? void 0 : _a.restore) === null || _b === void 0 ? void 0 : _b.projectName) !== null && _c !== void 0 ? _c : {}; } function getProjectVersionForProjectAssetsJson(manifestFile) { var _a, _b; return (_b = (_a = manifestFile === null || manifestFile === void 0 ? void 0 : manifestFile.project) === null || _a === void 0 ? void 0 : _a.version) !== null && _b !== void 0 ? _b : {}; } function buildPackageTree(name, version) { const depTree = { dependencies: {}, name, version, }; return depTree; } // Currently the function getDependencyTreeFromProjectAssetsJson returns // a two level deep flat list of 100% of dependencies. // TODO: Get full tree function getDependencyTreeFromProjectAssetsJson(manifestFile, targetFrameWork) { var _a, _b, _c, _d, _e, _f; const projectName = getProjectNameForProjectAssetsJson(manifestFile); const projectVersion = getProjectVersionForProjectAssetsJson(manifestFile); const depTree = buildPackageTree(projectName, projectVersion); const topLevelDeps = Object.keys((_b = (_a = manifestFile === null || manifestFile === void 0 ? void 0 : manifestFile.targets) === null || _a === void 0 ? void 0 : _a[targetFrameWork]) !== null && _b !== void 0 ? _b : {}); for (const topLevelDep of topLevelDeps) { const [topLevelDepName, topLevelDepVersion] = topLevelDep.split('/'); const topLevelDepTree = buildPackageTree(topLevelDepName, topLevelDepVersion); const transitiveDeps = (_f = (_e = (_d = (_c = manifestFile === null || manifestFile === void 0 ? void 0 : manifestFile.targets) === null || _c === void 0 ? void 0 : _c[targetFrameWork]) === null || _d === void 0 ? void 0 : _d[topLevelDep]) === null || _e === void 0 ? void 0 : _e.dependencies) !== null && _f !== void 0 ? _f : {}; for (const transitiveDep of Object.keys(transitiveDeps)) { const transitiveDepVersion = transitiveDeps[transitiveDep]; const transitiveDepTree = buildPackageTree(transitiveDep, transitiveDepVersion); topLevelDepTree.dependencies[transitiveDep] = transitiveDepTree; } depTree.dependencies[topLevelDepName] = topLevelDepTree; } return depTree; } exports.getDependencyTreeFromProjectAssetsJson = getDependencyTreeFromProjectAssetsJson; //# sourceMappingURL=project-assets-json-parser.js.map