Skip to content

Commit f248a95

Browse files
aryehbeitzAnton Drukh
authored andcommitted
fix: update dep tree and remove version from dep name (#16)
* fix: update dep tree and remove version from dep name * feat: fix dep tree 'from'
1 parent 401e043 commit f248a95

File tree

5 files changed

+40549
-34
lines changed

5 files changed

+40549
-34
lines changed

lib/formats/dotnet-cli-parser.js

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,10 @@ function collectFlatList(targetObj) {
1717
}
1818

1919
function registerDependency(packageTree, resolvedName) {
20-
var version = resolvedName.split('@')[1];
2120
var name = resolvedName.split('@')[0];
22-
var dependency = new Dependecy(name, version);
23-
packageTree.dependencies[resolvedName] =
24-
packageTree.dependencies[resolvedName] || dependency;
21+
var version = resolvedName.split('@')[1];
22+
packageTree.dependencies[name] =
23+
packageTree.dependencies[name] || new Dependecy(name, version);
2524
debug(resolvedName);
2625
}
2726

@@ -45,19 +44,18 @@ function parse(fileContent, packageTree) {
4544

4645
Object.keys(targetObj).forEach(function (key) {
4746
var resolvedName = convertFromPathSyntax(key);
48-
var dependency = packageTree.dependencies[resolvedName];
47+
var depName = resolvedName.split('@')[0];
48+
var dependency = packageTree.dependencies[depName];
4949
var depManifest = targetObj[key];
5050
Object.keys(depManifest.dependencies || {}).forEach(function (key) {
5151
try {
5252
var version = depManifest.dependencies[key];
5353
var lookup = key + '@' + version;
54-
packageTree.dependencies[key] =
55-
packageTree.dependencies[key] || new Dependecy(key, version);
5654
if (lookup.toLowerCase().indexOf('system.') === 0) {
5755
// skip system packages in tree
5856
return;
5957
}
60-
dependency.dependencies[key] = packageTree.dependencies[key];
58+
dependency.dependencies[key] = new Dependecy(key, version);
6159
}
6260
catch (err) {
6361
console.log(err);
@@ -72,11 +70,13 @@ function parse(fileContent, packageTree) {
7270

7371
// restructure tree with "from" chains.
7472
function buildPath(node, from) {
73+
7574
node.from = node.from.concat(from);
7675
Object.keys(node.dependencies).forEach(function (key) {
7776
var depFrom = node.from.concat(node.name + '@' + node.version);
7877
buildPath(node.dependencies[key], depFrom);
7978
});
79+
node.from = node.from.concat(node.name + '@' + node.version);
8080
}
8181

8282
// to disconnect the object references inside the tree

test/parse-dotnet-cli-2.test.js

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
var test = require('tap').test;
2+
var plugin = require('../lib/index');
3+
var projectPath = './test/stubs/dotnet_project/';
4+
var manifestFile = projectPath + 'obj/project.assets.json';
5+
var expectedTree = require('./stubs/dotnet_project/expected.json');
6+
7+
test('parse dotnet-cli 2 project and traverse packages', function (t) {
8+
plugin.inspect(
9+
projectPath,
10+
manifestFile)
11+
.then(function (result) {
12+
t.deepEqual(
13+
result,
14+
expectedTree,
15+
'expects project data to be correct'
16+
);
17+
t.end();
18+
})
19+
.catch(function (error) {
20+
t.fail('Error was thrown: ' + err);
21+
});
22+
});

0 commit comments

Comments
 (0)