Skip to content

Commit 8270ae5

Browse files
committed
feat: dont include from arrays in tree
1 parent 4f292de commit 8270ae5

File tree

13 files changed

+3600
-21168
lines changed

13 files changed

+3600
-21168
lines changed

lib/dependency.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ function Dependency(name, version) {
55
this.version = version;
66
this.dependencies = {};
77
this.versionSpec = 'unknown';
8-
this.from = [];
98
}
109

1110
Dependency.prototype.cloneShallow = function () {

lib/formats/dotnet-core-parser.js

Lines changed: 4 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
var Dependecy = require('../dependency');
1+
var Dependency = require('../dependency');
22
var debug = require('debug')('snyk');
33

44
function convertFromPathSyntax(path) {
@@ -20,7 +20,7 @@ function registerDependency(packageTree, resolvedName) {
2020
var name = resolvedName.split('@')[0];
2121
var version = resolvedName.split('@')[1];
2222
packageTree.dependencies[name] =
23-
packageTree.dependencies[name] || new Dependecy(name, version);
23+
packageTree.dependencies[name] || new Dependency(name, version);
2424
debug(resolvedName);
2525
}
2626

@@ -29,7 +29,6 @@ function parse(fileContent, packageTree) {
2929
var manifest = JSON.parse(fileContent);
3030
if (manifest.project) {
3131
packageTree.version = manifest.project.version;
32-
packageTree.from[0] = packageTree.name + '@' + packageTree.version;
3332
}
3433
var targets = Object
3534
.keys(manifest.targets)
@@ -63,9 +62,9 @@ function parse(fileContent, packageTree) {
6362
// even within the subtree
6463
if (packageTree.dependencies[key]) {
6564
dependency.dependencies[key] =
66-
new Dependecy(key, packageTree.dependencies[key].version);
65+
new Dependency(key, packageTree.dependencies[key].version);
6766
} else {
68-
dependency.dependencies[key] = new Dependecy(key, version);
67+
dependency.dependencies[key] = new Dependency(key, version);
6968
}
7069
}
7170
catch (err) {
@@ -75,27 +74,10 @@ function parse(fileContent, packageTree) {
7574
})
7675
});
7776

78-
// restructure tree with "from" chains.
79-
function buildPath(node, from) {
80-
81-
node.from = node.from.concat(from);
82-
Object.keys(node.dependencies).forEach(function (key) {
83-
var depFrom = node.from.concat(node.name + '@' + node.version);
84-
buildPath(node.dependencies[key], depFrom);
85-
});
86-
node.from = node.from.concat(node.name + '@' + node.version);
87-
}
88-
8977
// to disconnect the object references inside the tree
9078
// JSON parse/stringify is used
9179
var pathedTree = JSON.parse(JSON.stringify(packageTree.dependencies));
92-
93-
Object.keys(pathedTree).forEach(function (key) {
94-
buildPath(pathedTree[key], [packageTree.name + '@' + packageTree.version]);
95-
});
96-
9780
packageTree.dependencies = pathedTree;
9881
}
9982

100-
10183
module.exports = parse;

lib/index.js

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
var fs = require('fs');
22
var parseXML = require('xml2js').parseString;
33
var Promise = require('es6-promise').Promise;
4-
var Dependecy = require('./dependency');
5-
var findFolder = require('./find-folder');
4+
var Dependency = require('./dependency');
65
var path = require('path');
76
var parseNuspec = require('./nuspec-parser');
87
var jsonManifestParser = require('./json-manifest-parser');
@@ -57,7 +56,6 @@ module.exports = {
5756
name: path.basename(root || projectRootFolder),
5857
version: '0.0.0',
5958
packageFormatVersion: 'nuget:0.0.0',
60-
from: [path.basename(root || projectRootFolder) + '@0.0.0'],
6159
dependencies: {},
6260
},
6361
plugin: {
@@ -85,7 +83,7 @@ module.exports = {
8583
for (var name in rawDependencies) {
8684
// Array<{ "libraryName": "version" }>
8785
var version = rawDependencies[name];
88-
var newDependency = new Dependecy(name, version, null);
86+
var newDependency = new Dependency(name, version, null);
8987
if (newDependency.name.indexOf('System.') !== 0) {
9088
installedPackages.push(newDependency);
9189
}
@@ -108,7 +106,7 @@ module.exports = {
108106
if (node.$.id.indexOf('System.') !== 0) {
109107
// include only non-system libraries
110108
var installedDependency =
111-
Dependecy.from.packgesConfigEntry(node);
109+
Dependency.from.packgesConfigEntry(node);
112110
installedPackages.push(installedDependency);
113111
}
114112
});
@@ -136,7 +134,7 @@ module.exports = {
136134
return name.slice(0, 7).toLowerCase() !== 'system.';
137135
})
138136
.map(function (folderName) {
139-
return Dependecy.from.folderName(folderName);
137+
return Dependency.from.folderName(folderName);
140138
})
141139
.forEach(function (dep) {
142140
injectPath(dep, packagesFolder);
@@ -192,8 +190,6 @@ module.exports = {
192190
// now the flat list should be rebuilt as a tree
193191
debug('Building dependency tree');
194192
function buildTree(node, requiredChildren, repository) {
195-
var resolutionName = node.name + '@' + node.version;
196-
node.from = node.from.concat(resolutionName);
197193
requiredChildren.forEach(function (requiredChild) {
198194
var transitiveDependency;
199195
if (flattendPackageList[requiredChild.name]) {
@@ -204,12 +200,11 @@ module.exports = {
204200
requiredChild.versionSpec || transitiveDependency.versionSpec;
205201
} else {
206202
// create as new (uninstalled)
207-
transitiveDependency = new Dependecy(
203+
transitiveDependency = new Dependency(
208204
requiredChild.name,
209205
requiredChild.version);
210206
transitiveDependency.versionSpec = requiredChild.version;
211207
}
212-
transitiveDependency.from = node.from.concat();
213208
var transitiveChildren =
214209
(nuspecResolutions[transitiveDependency.name] &&
215210
nuspecResolutions[transitiveDependency.name].children) || [];
@@ -231,7 +226,6 @@ module.exports = {
231226
for (var key in nuspecResolutions) {
232227
var resolution = nuspecResolutions[key];
233228
var node = flattendPackageList[resolution.name].cloneShallow();
234-
node.from = tree.from.concat();
235229
buildTree(node, resolution.children, flattendPackageList);
236230
tree.dependencies[node.name] = node;
237231
}

test/parse-without-traverse.test.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ function createEmptyNode(name, version) {
1212
name + '.' + version);
1313
return {
1414
name: name,
15-
from: [],
1615
version: version,
1716
versionSpec: 'unknown',
1817
dependencies: {},

0 commit comments

Comments
 (0)