wallaby-webpack
Advanced tools
Comparing version 3.9.0 to 3.9.1
84
index.js
@@ -165,2 +165,7 @@ 'use strict'; | ||
var createFilePromises = []; | ||
if (!self._fullRun) { | ||
self._affectedModules = self._addHarmonyModulesAffectedDependencies(self._affectedModules, affectedFiles); | ||
} | ||
_.each(self._affectedModules, function (m) { | ||
@@ -176,3 +181,3 @@ var trackedFile = m.resource && affectedFiles[m.resource]; | ||
var depIds = []; | ||
self._traverseDependencies(m.dependencies, depIds, {}); | ||
self._traverseDependencies(m.dependencies, d => d.module, (m, f) => depIds.push(f.id), {}); | ||
self._testDependencies[trackedFile.id] = depIds; | ||
@@ -252,12 +257,47 @@ } | ||
_traverseDependencies(deps, depIds, visitedDeps) { | ||
_addHarmonyModulesAffectedDependencies(affectedModules, affectedFiles) { | ||
var self = this; | ||
var allAffectedModules = {}; | ||
var allAffectedModulesList = []; | ||
var visitedDeps = {}; | ||
_.each(affectedModules, m => { | ||
if (!_.isNumber(m.id)) { | ||
allAffectedModulesList.push(m); | ||
} else { | ||
allAffectedModules[m.id] = m; | ||
} | ||
if (m.dependencies) { | ||
self._traverseDependencies( | ||
m.dependencies, | ||
dep => dep && dep.constructor && (typeof dep.constructor.name === 'string') | ||
&& (dep.constructor.name.indexOf('HarmonyExport') === 0) && dep.originModule && dep.originModule.issuer, | ||
(m, f) => { | ||
if (_.isNumber(m.id)) { | ||
allAffectedModules[m.id] = m; | ||
} else { | ||
allAffectedModulesList.push(m); | ||
} | ||
if (f) { | ||
affectedFiles[m.resource] = f; | ||
} | ||
}, | ||
visitedDeps | ||
); | ||
} | ||
}); | ||
return allAffectedModulesList.concat(_.values(allAffectedModules)); | ||
} | ||
_traverseDependencies(deps, moduleGetter, onDependency, visitedDeps) { | ||
var self = this; | ||
_.each(deps, function (dep) { | ||
if (!dep || !dep.module) return; | ||
var depResourceId = dep.module.resource || ''; | ||
if (!dep) return; | ||
var m = moduleGetter(dep); | ||
if (!m) return; | ||
var depResourceId = m.resource || ''; | ||
if (visitedDeps[depResourceId]) return; | ||
visitedDeps[depResourceId] = true; | ||
var trackedDepFile = dep.module.resource && self._allTrackedFiles[dep.module.resource]; | ||
if (trackedDepFile) depIds.push(trackedDepFile.id); | ||
self._traverseDependencies(dep.module.dependencies, depIds, visitedDeps); | ||
var trackedDepFile = m.resource && self._allTrackedFiles[m.resource]; | ||
if (trackedDepFile) onDependency(m, trackedDepFile, dep); | ||
self._traverseDependencies(m.dependencies, moduleGetter, onDependency, visitedDeps); | ||
}); | ||
@@ -313,34 +353,4 @@ } | ||
var needToPatchDependencyTemplates = !self._fullRun; | ||
compilation.plugin('build-module', function (m) { | ||
self._affectedModules.push(m); | ||
if (needToPatchDependencyTemplates && self._dependencyTemplates.forEach) { | ||
self._dependencyTemplates.forEach(v => { | ||
if (v && v.constructor && (typeof v.constructor.name === 'string') | ||
&& v.constructor.name.indexOf('Harmony') === 0 && !v.patched) { | ||
var originalApply = v.apply; | ||
v.apply = function (dep, source) { | ||
var replacementsLengthBeforeDepenencyProcessing; | ||
if (source && source.replacements) { | ||
replacementsLengthBeforeDepenencyProcessing = source.replacements.length; | ||
} | ||
var result = originalApply.apply(this, arguments); | ||
if (source.replacements && source.replacements.length !== replacementsLengthBeforeDepenencyProcessing) { | ||
if (dep && dep.module && dep.module.issuer | ||
&& dep.module.issuer.constructor | ||
&& (typeof dep.module.issuer.constructor.name === 'string') | ||
&& ~dep.module.issuer.constructor.name.indexOf('Module') | ||
&& dep.module.issuer !== m) { | ||
self._affectedModules.push(dep.module.issuer); | ||
} | ||
} | ||
return result; | ||
}; | ||
v.patched = true; | ||
} | ||
}); | ||
needToPatchDependencyTemplates = false; | ||
} | ||
}); | ||
@@ -347,0 +357,0 @@ |
{ | ||
"name": "wallaby-webpack", | ||
"version": "3.9.0", | ||
"version": "3.9.1", | ||
"description": "Webpack postprocessor for wallaby.js", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
453
22358