snyk-nodejs-lockfile-parser 1.16.1 → 1.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -26,4 +26,5 @@ export declare class YarnLockParser implements LockfileParser {
26
26
  parseLockFile(lockFileContents: string): YarnLock;
27
27
  getDependencyTree(manifestFile: ManifestFile, lockfile: Lockfile, includeDev?: boolean, strict?: boolean): Promise<PkgTree>;
28
28
  private buildSubTree;
29
+ private resolveDep;
29
30
  }
@@ -2,13 +2,15 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
4
  const _ = require("lodash");
5
+ const pMap = require("p-map");
5
6
  const _1 = require("./");
6
7
  const get_node_runtime_version_1 = require("../get-node-runtime-version");
7
8
  const set_immediate_promise_1 = require("../set-immediate-promise");
8
9
  const errors_1 = require("../errors");
10
+ const EVENT_PROCESSING_CONCURRENCY = 5;
9
11
  class YarnLockParser {
10
12
  constructor() {
11
- this.eventLoopSpinRate = 100;
13
+ this.eventLoopSpinRate = 20;
12
14
  // @yarnpkg/lockfile doesn't work with Node.js < 6 and crashes just after
13
15
  // the import, so it has to be required conditionally
14
16
  // more details at https://github.com/yarnpkg/yarn/issues/6304
@@ -55,19 +57,7 @@ class YarnLockParser {
55
57
  if (_.isEmpty(manifestFile.dependencies) && !includeDev) {
56
58
  return depTree;
57
59
  }
58
- for (const dep of topLevelDeps) {
59
- if (/^file:/.test(dep.version)) {
60
- depTree.dependencies[dep.name] = _1.createDepTreeDepFromDep(dep);
61
- }
62
- else {
63
- depTree.dependencies[dep.name] = yield this.buildSubTree(yarnLock, _1.createDepTreeDepFromDep(dep), strict);
64
- }
65
- this.treeSize++;
66
- if (this.treeSize % this.eventLoopSpinRate === 0) {
67
- // Spin event loop every X dependencies.
68
- yield set_immediate_promise_1.setImmediatePromise();
69
- }
70
- }
60
+ yield pMap(topLevelDeps, (dep) => this.resolveDep(dep, depTree, yarnLock, strict), { concurrency: EVENT_PROCESSING_CONCURRENCY });
71
61
  depTree.size = this.treeSize;
72
62
  return depTree;
73
63
  });
@@ -125,6 +115,21 @@ class YarnLockParser {
125
115
  return tree;
126
116
  });
127
117
  }
118
+ resolveDep(dep, depTree, yarnLock, strict) {
119
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
120
+ if (/^file:/.test(dep.version)) {
121
+ depTree.dependencies[dep.name] = _1.createDepTreeDepFromDep(dep);
122
+ }
123
+ else {
124
+ depTree.dependencies[dep.name] = yield this.buildSubTree(yarnLock, _1.createDepTreeDepFromDep(dep), strict);
125
+ }
126
+ this.treeSize++;
127
+ if (this.treeSize % this.eventLoopSpinRate === 0) {
128
+ // Spin event loop every X dependencies.
129
+ yield set_immediate_promise_1.setImmediatePromise();
130
+ }
131
+ });
132
+ }
128
133
  }
129
134
  exports.YarnLockParser = YarnLockParser;
130
135
  //# sourceMappingURL=yarn-lock-parse.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"yarn-lock-parse.js","sourceRoot":"","sources":["../../lib/parsers/yarn-lock-parse.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"yarn-lock-parse.js","sourceRoot":"","sources":["../../lib/parsers/yarn-lock-parse.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -32,6 +32,7 @@
32
32
  "@yarnpkg/lockfile": "^1.0.2",
33
33
  "graphlib": "^2.1.5",
34
34
  "lodash": "^4.17.14",
35
+ "p-map": "2.1.0",
35
36
  "source-map-support": "^0.5.7",
36
37
  "tslib": "^1.9.3",
37
38
  "uuid": "^3.3.2"
@@ -45,5 +46,5 @@
45
46
  "tslint": "5.11.0",
46
47
  "typescript": "3.0.1"
47
48
  },
48
- "version": "1.16.1"
49
+ "version": "1.17.0"
49
50
  }