webpack-merge
Advanced tools
Comparing version 0.7.0 to 0.7.1
@@ -0,1 +1,6 @@ | ||
0.7.1 / 2016-01-03 | ||
================== | ||
* Improve performance by defaulting to `concat` and by dropping a redundant check. Thanks @davegomez! | ||
0.7.0 / 2015-12-31 | ||
@@ -2,0 +7,0 @@ ================== |
'use strict'; | ||
function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } | ||
var isArray = Array.isArray; | ||
@@ -12,2 +10,14 @@ var isPlainObject = require('lodash.isplainobject'); | ||
function mergeLoaders(currentLoaders, newLoaders) { | ||
return newLoaders.reduce(function (mergedLoaders, loader) { | ||
if (mergedLoaders.every(function (l) { | ||
return loader.match(loaderNameRe)[0] !== l.match(loaderNameRe)[0]; | ||
})) { | ||
// prepend because of rtl (latter objects should be able to build the chain) | ||
return mergedLoaders.concat(loader); | ||
} | ||
return mergedLoaders; | ||
}, currentLoaders); | ||
} | ||
function reduceLoaders(mergedLoaderConfigs, loaderConfig) { | ||
@@ -19,22 +29,12 @@ var foundLoader = find(mergedLoaderConfigs, function (l) { | ||
// foundLoader.loader is intentionally ignored, because a string loader value should always override | ||
if (foundLoader && foundLoader.loaders) { | ||
if (foundLoader.loaders) { | ||
var newLoaders = loaderConfig.loader ? [loaderConfig.loader] : loaderConfig.loaders || []; | ||
if (foundLoader.include || foundLoader.exclude) { | ||
return [].concat(_toConsumableArray(mergedLoaderConfigs), [loaderConfig]); | ||
return mergedLoaderConfigs.concat(loaderConfig); | ||
} | ||
foundLoader.loaders = newLoaders.reduce(function (mergedLoaders, loader) { | ||
var loaderName = loader.match(loaderNameRe)[0]; | ||
if (mergedLoaders.every(function (l) { | ||
return loaderName !== l.match(loaderNameRe)[0]; | ||
})) { | ||
// prepend because of rtl (latter objects should be able to build the chain) | ||
return [].concat(_toConsumableArray(mergedLoaders), [loader]); | ||
} | ||
return mergedLoaders; | ||
}, foundLoader.loaders); | ||
foundLoader.loaders = mergeLoaders(foundLoader.loaders, newLoaders); | ||
} else if (!foundLoader) { | ||
return [].concat(_toConsumableArray(mergedLoaderConfigs), [loaderConfig]); | ||
return mergedLoaderConfigs.concat(loaderConfig); | ||
} | ||
@@ -41,0 +41,0 @@ |
@@ -5,3 +5,3 @@ { | ||
"author": "Juho Vepsalainen <bebraw@gmail.com>", | ||
"version": "0.7.0", | ||
"version": "0.7.1", | ||
"scripts": { | ||
@@ -13,3 +13,3 @@ "build": "babel src -d lib", | ||
"watch:test": "mocha ./test --watch", | ||
"preversion": "npm run lint && npm test && npm run build && git commit --allow-empty -am \"Update lib\"" | ||
"preversion": "npm run lint && npm run build && npm test && git commit --allow-empty -am \"Update lib\"" | ||
}, | ||
@@ -16,0 +16,0 @@ "main": "lib/index.js", |
@@ -203,2 +203,3 @@ [![build status](https://secure.travis-ci.org/survivejs/webpack-merge.png)](http://travis-ci.org/survivejs/webpack-merge) | ||
* [Jonathan Felchlin](https://github.com/GreenGremlin) - Smart merging for loaders. | ||
* [David Gómez](https://github.com/davegomez) - Performance and cosmetic improvements. | ||
@@ -205,0 +206,0 @@ ## License |
@@ -8,2 +8,12 @@ const isArray = Array.isArray; | ||
function mergeLoaders(currentLoaders, newLoaders) { | ||
return newLoaders.reduce((mergedLoaders, loader) => { | ||
if (mergedLoaders.every(l => loader.match(loaderNameRe)[0] !== l.match(loaderNameRe)[0])) { | ||
// prepend because of rtl (latter objects should be able to build the chain) | ||
return mergedLoaders.concat(loader); | ||
} | ||
return mergedLoaders; | ||
}, currentLoaders); | ||
} | ||
function reduceLoaders(mergedLoaderConfigs, loaderConfig) { | ||
@@ -13,20 +23,12 @@ const foundLoader = find(mergedLoaderConfigs, l => String(l.test) === String(loaderConfig.test)); | ||
// foundLoader.loader is intentionally ignored, because a string loader value should always override | ||
if (foundLoader && foundLoader.loaders) { | ||
if (foundLoader.loaders) { | ||
const newLoaders = loaderConfig.loader ? [loaderConfig.loader] : loaderConfig.loaders || []; | ||
if (foundLoader.include || foundLoader.exclude) { | ||
return [...mergedLoaderConfigs, loaderConfig]; | ||
return mergedLoaderConfigs.concat(loaderConfig); | ||
} | ||
foundLoader.loaders = newLoaders.reduce((mergedLoaders, loader) => { | ||
const loaderName = loader.match(loaderNameRe)[0]; | ||
if (mergedLoaders.every(l => loaderName !== l.match(loaderNameRe)[0])) { | ||
// prepend because of rtl (latter objects should be able to build the chain) | ||
return [...mergedLoaders, loader]; | ||
} | ||
return mergedLoaders; | ||
}, foundLoader.loaders); | ||
foundLoader.loaders = mergeLoaders(foundLoader.loaders, newLoaders); | ||
} else if (!foundLoader) { | ||
return [...mergedLoaderConfigs, loaderConfig]; | ||
return mergedLoaderConfigs.concat(loaderConfig); | ||
} | ||
@@ -33,0 +35,0 @@ |
Sorry, the diff of this file is not supported yet
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
529567
6508
208