Socket
Socket
Sign inDemoInstall

webpack-merge

Package Overview
Dependencies
Maintainers
1
Versions
91
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

webpack-merge - npm Package Compare versions

Comparing version 0.7.0 to 0.7.1

5

CHANGELOG.md

@@ -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 @@ ==================

32

lib/index.js
'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

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc