Comparing version 3.2.0 to 3.2.1
@@ -0,1 +1,5 @@ | ||
# [3.2.1](https://github.com/TehShrike/deepmerge/releases/tag/v3.2.1) | ||
- bumping dev dependency versions to try to shut up bogus security warnings from Github/npm [#149](https://github.com/TehShrike/deepmerge/pull/149) | ||
# [3.2.0](https://github.com/TehShrike/deepmerge/releases/tag/v3.2.0) | ||
@@ -2,0 +6,0 @@ |
158
dist/umd.js
(function (global, factory) { | ||
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : | ||
typeof define === 'function' && define.amd ? define(factory) : | ||
(global.deepmerge = factory()); | ||
}(this, (function () { 'use strict'; | ||
(global = global || self, global.deepmerge = factory()); | ||
}(this, function () { 'use strict'; | ||
var isMergeableObject = function isMergeableObject(value) { | ||
return isNonNullObject(value) | ||
&& !isSpecial(value) | ||
}; | ||
var isMergeableObject = function isMergeableObject(value) { | ||
return isNonNullObject(value) | ||
&& !isSpecial(value) | ||
}; | ||
function isNonNullObject(value) { | ||
return !!value && typeof value === 'object' | ||
} | ||
function isNonNullObject(value) { | ||
return !!value && typeof value === 'object' | ||
} | ||
function isSpecial(value) { | ||
var stringValue = Object.prototype.toString.call(value); | ||
function isSpecial(value) { | ||
var stringValue = Object.prototype.toString.call(value); | ||
return stringValue === '[object RegExp]' | ||
|| stringValue === '[object Date]' | ||
|| isReactElement(value) | ||
} | ||
return stringValue === '[object RegExp]' | ||
|| stringValue === '[object Date]' | ||
|| isReactElement(value) | ||
} | ||
// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25 | ||
var canUseSymbol = typeof Symbol === 'function' && Symbol.for; | ||
var REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7; | ||
// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25 | ||
var canUseSymbol = typeof Symbol === 'function' && Symbol.for; | ||
var REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7; | ||
function isReactElement(value) { | ||
return value.$$typeof === REACT_ELEMENT_TYPE | ||
} | ||
function isReactElement(value) { | ||
return value.$$typeof === REACT_ELEMENT_TYPE | ||
} | ||
function emptyTarget(val) { | ||
return Array.isArray(val) ? [] : {} | ||
} | ||
function emptyTarget(val) { | ||
return Array.isArray(val) ? [] : {} | ||
} | ||
function cloneUnlessOtherwiseSpecified(value, options) { | ||
return (options.clone !== false && options.isMergeableObject(value)) | ||
? deepmerge(emptyTarget(value), value, options) | ||
: value | ||
} | ||
function cloneUnlessOtherwiseSpecified(value, options) { | ||
return (options.clone !== false && options.isMergeableObject(value)) | ||
? deepmerge(emptyTarget(value), value, options) | ||
: value | ||
} | ||
function defaultArrayMerge(target, source, options) { | ||
return target.concat(source).map(function(element) { | ||
return cloneUnlessOtherwiseSpecified(element, options) | ||
}) | ||
} | ||
function defaultArrayMerge(target, source, options) { | ||
return target.concat(source).map(function(element) { | ||
return cloneUnlessOtherwiseSpecified(element, options) | ||
}) | ||
} | ||
function getMergeFunction(key, options) { | ||
if (!options.customMerge) { | ||
return deepmerge | ||
function getMergeFunction(key, options) { | ||
if (!options.customMerge) { | ||
return deepmerge | ||
} | ||
var customMerge = options.customMerge(key); | ||
return typeof customMerge === 'function' ? customMerge : deepmerge | ||
} | ||
var customMerge = options.customMerge(key); | ||
return typeof customMerge === 'function' ? customMerge : deepmerge | ||
} | ||
function mergeObject(target, source, options) { | ||
var destination = {}; | ||
if (options.isMergeableObject(target)) { | ||
Object.keys(target).forEach(function(key) { | ||
destination[key] = cloneUnlessOtherwiseSpecified(target[key], options); | ||
function mergeObject(target, source, options) { | ||
var destination = {}; | ||
if (options.isMergeableObject(target)) { | ||
Object.keys(target).forEach(function(key) { | ||
destination[key] = cloneUnlessOtherwiseSpecified(target[key], options); | ||
}); | ||
} | ||
Object.keys(source).forEach(function(key) { | ||
if (!options.isMergeableObject(source[key]) || !target[key]) { | ||
destination[key] = cloneUnlessOtherwiseSpecified(source[key], options); | ||
} else { | ||
destination[key] = getMergeFunction(key, options)(target[key], source[key], options); | ||
} | ||
}); | ||
return destination | ||
} | ||
Object.keys(source).forEach(function(key) { | ||
if (!options.isMergeableObject(source[key]) || !target[key]) { | ||
destination[key] = cloneUnlessOtherwiseSpecified(source[key], options); | ||
} else { | ||
destination[key] = getMergeFunction(key, options)(target[key], source[key], options); | ||
} | ||
}); | ||
return destination | ||
} | ||
function deepmerge(target, source, options) { | ||
options = options || {}; | ||
options.arrayMerge = options.arrayMerge || defaultArrayMerge; | ||
options.isMergeableObject = options.isMergeableObject || isMergeableObject; | ||
function deepmerge(target, source, options) { | ||
options = options || {}; | ||
options.arrayMerge = options.arrayMerge || defaultArrayMerge; | ||
options.isMergeableObject = options.isMergeableObject || isMergeableObject; | ||
var sourceIsArray = Array.isArray(source); | ||
var targetIsArray = Array.isArray(target); | ||
var sourceAndTargetTypesMatch = sourceIsArray === targetIsArray; | ||
var sourceIsArray = Array.isArray(source); | ||
var targetIsArray = Array.isArray(target); | ||
var sourceAndTargetTypesMatch = sourceIsArray === targetIsArray; | ||
if (!sourceAndTargetTypesMatch) { | ||
return cloneUnlessOtherwiseSpecified(source, options) | ||
} else if (sourceIsArray) { | ||
return options.arrayMerge(target, source, options) | ||
} else { | ||
return mergeObject(target, source, options) | ||
if (!sourceAndTargetTypesMatch) { | ||
return cloneUnlessOtherwiseSpecified(source, options) | ||
} else if (sourceIsArray) { | ||
return options.arrayMerge(target, source, options) | ||
} else { | ||
return mergeObject(target, source, options) | ||
} | ||
} | ||
} | ||
deepmerge.all = function deepmergeAll(array, options) { | ||
if (!Array.isArray(array)) { | ||
throw new Error('first argument should be an array') | ||
} | ||
deepmerge.all = function deepmergeAll(array, options) { | ||
if (!Array.isArray(array)) { | ||
throw new Error('first argument should be an array') | ||
} | ||
return array.reduce(function(prev, next) { | ||
return deepmerge(prev, next, options) | ||
}, {}) | ||
}; | ||
return array.reduce(function(prev, next) { | ||
return deepmerge(prev, next, options) | ||
}, {}) | ||
}; | ||
var deepmerge_1 = deepmerge; | ||
var deepmerge_1 = deepmerge; | ||
return deepmerge_1; | ||
return deepmerge_1; | ||
}))); | ||
})); |
@@ -13,3 +13,3 @@ { | ||
], | ||
"version": "3.2.0", | ||
"version": "3.2.1", | ||
"homepage": "https://github.com/TehShrike/deepmerge", | ||
@@ -26,3 +26,3 @@ "repository": { | ||
"build": "rollup -c", | ||
"test": "npm run build && tap test/*.js && jsmd readme.md && npm run test:typescript", | ||
"test": "npm run build && tape test/*.js && jsmd readme.md && npm run test:typescript", | ||
"test:typescript": "tsc --noEmit test/typescript.ts && ts-node test/typescript.ts", | ||
@@ -32,12 +32,13 @@ "size": "npm run build && uglifyjs --compress --mangle -- ./dist/umd.js | gzip -c | wc -c" | ||
"devDependencies": { | ||
"@types/node": "^8.10.49", | ||
"is-mergeable-object": "1.1.0", | ||
"is-plain-object": "^2.0.4", | ||
"jsmd": "0.3.1", | ||
"rollup": "0.49.3", | ||
"rollup-plugin-commonjs": "8.2.1", | ||
"rollup-plugin-node-resolve": "3.0.0", | ||
"tap": "12.0.1", | ||
"jsmd": "^1.0.1", | ||
"rollup": "^1.15.5", | ||
"rollup-plugin-commonjs": "^10.0.0", | ||
"rollup-plugin-node-resolve": "^5.0.2", | ||
"tape": "^4.10.2", | ||
"ts-node": "7.0.1", | ||
"typescript": "=2.2.2", | ||
"uglify-js": "^3.3.12" | ||
"uglify-js": "^3.6.0" | ||
}, | ||
@@ -44,0 +45,0 @@ "license": "MIT", |
@@ -5,3 +5,3 @@ # deepmerge | ||
> UMD bundle is 567B minified+gzipped | ||
> UMD bundle is 587B minified+gzipped | ||
@@ -75,17 +75,12 @@ | ||
### Includes | ||
### Include | ||
CommonJS: | ||
``` | ||
var merge = require('deepmerge') | ||
``` | ||
deepmerge exposes a CommonJS entry point: | ||
ES Modules: | ||
``` | ||
import * as deepmerge from 'deepmerge' | ||
const merge = require('deepmerge') | ||
``` | ||
(support for `import merge from 'deepmerge'` was removed because of a [Webpack bug](https://github.com/webpack/webpack/issues/6584)). | ||
The ESM entry point was dropped due to a [Webpack bug](https://github.com/webpack/webpack/issues/6584). | ||
# API | ||
@@ -92,0 +87,0 @@ |
@@ -8,3 +8,2 @@ import resolve from 'rollup-plugin-node-resolve' | ||
input: `index.js`, | ||
name: `deepmerge`, | ||
plugins: [ | ||
@@ -15,4 +14,8 @@ commonjs(), | ||
output: [ | ||
{ file: pkg.main, format: `umd` }, | ||
{ | ||
name: 'deepmerge', | ||
file: pkg.main, | ||
format: `umd` | ||
}, | ||
], | ||
} |
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
22015
177
11
275