From de98e0b232509d5f40c135d540a70e415272ff85 Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Wed, 3 May 2017 15:35:00 +0200 Subject: node_modules --- .../lib/dependencies/HarmonyModulesHelpers.js | 85 ++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 node_modules/webpack/lib/dependencies/HarmonyModulesHelpers.js (limited to 'node_modules/webpack/lib/dependencies/HarmonyModulesHelpers.js') diff --git a/node_modules/webpack/lib/dependencies/HarmonyModulesHelpers.js b/node_modules/webpack/lib/dependencies/HarmonyModulesHelpers.js new file mode 100644 index 000000000..cd3b63115 --- /dev/null +++ b/node_modules/webpack/lib/dependencies/HarmonyModulesHelpers.js @@ -0,0 +1,85 @@ +/* + MIT License http://www.opensource.org/licenses/mit-license.php + Author Tobias Koppers @sokra +*/ +"use strict"; + +class HarmonyModulesHelpers { + + static getModuleVar(state, request) { + if(!state.harmonyModules) state.harmonyModules = []; + var idx = state.harmonyModules.indexOf(request); + if(idx < 0) { + idx = state.harmonyModules.length; + state.harmonyModules.push(request); + } + return "__WEBPACK_IMPORTED_MODULE_" + idx + "_" + request.replace(/[^A-Za-z0-9_]/g, "_").replace(/__+/g, "_") + "__"; + } + + static getNewModuleVar(state, request) { + if(state.harmonyModules && state.harmonyModules.indexOf(request) >= 0) + return null; + return this.getModuleVar(state, request); + } + + static checkModuleVar(state, request) { + if(!state.harmonyModules || state.harmonyModules.indexOf(request) < 0) + return null; + return this.getModuleVar(state, request); + } + + // checks if an harmony dependency is active in a module according to + // precedence rules. + static isActive(module, depInQuestion) { + var desc = depInQuestion.describeHarmonyExport(); + if(!desc.exportedName) return true; + var before = true; + for(var i = 0; i < module.dependencies.length; i++) { + var dep = module.dependencies[i]; + if(dep === depInQuestion) { + before = false; + continue; + } + if(!dep.describeHarmonyExport) continue; + var d = dep.describeHarmonyExport(); + if(!d || !d.exportedName) continue; + if(d.exportedName === desc.exportedName) { + if(d.precedence < desc.precedence) { + return false; + } + if(d.precedence === desc.precedence && !before) { + return false; + } + } + } + return true; + } + + // get a list of named exports defined in a module + // doesn't include * reexports. + static getActiveExports(module, currentDependency) { + var desc = currentDependency && currentDependency.describeHarmonyExport(); + var currentIndex = currentDependency ? module.dependencies.indexOf(currentDependency) : -1; + return module.dependencies.map((dep, idx) => { + return { + dep: dep, + idx: idx + }; + }).reduce((arr, data) => { + var dep = data.dep; + if(!dep.describeHarmonyExport) return arr; + var d = dep.describeHarmonyExport(); + if(!d) return arr; + if(!desc || (d.precedence < desc.precedence) || (d.precedence === desc.precedence && data.idx < currentIndex)) { + var names = [].concat(d.exportedName); + names.forEach(function(name) { + if(name && arr.indexOf(name) < 0) + arr.push(name); + }); + } + return arr; + }, []); + } +} + +module.exports = HarmonyModulesHelpers; -- cgit v1.2.3