Comparing version 5.31.2 to 5.32.0
@@ -0,1 +1,6 @@ | ||
export declare type Path = (string | number)[]; | ||
export default function set<Entity = any, Output = Entity, Value = any>(entity: Entity, paths: (string | number)[], value: Value, removeIfUndefined?: boolean): Output; | ||
/** | ||
* Merge objects which will create | ||
*/ | ||
export declare function merge<T extends object>(...sources: T[]): T; |
@@ -0,1 +1,2 @@ | ||
import _typeof from "@babel/runtime/helpers/esm/typeof"; | ||
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2"; | ||
@@ -36,2 +37,42 @@ import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray"; | ||
return internalSet(entity, paths, value, removeIfUndefined); | ||
} | ||
function isObject(obj) { | ||
return _typeof(obj) === 'object' && obj !== null && Object.getPrototypeOf(obj) === Object.prototype; | ||
} | ||
function createEmpty(source) { | ||
return Array.isArray(source) ? [] : {}; | ||
} | ||
/** | ||
* Merge objects which will create | ||
*/ | ||
export function merge() { | ||
for (var _len = arguments.length, sources = new Array(_len), _key = 0; _key < _len; _key++) { | ||
sources[_key] = arguments[_key]; | ||
} | ||
var clone = createEmpty(sources[0]); | ||
var loopSet = new Set(); | ||
sources.forEach(function (src) { | ||
function internalMerge(path) { | ||
var value = get(src, path); | ||
if (isObject(value) || Array.isArray(value)) { | ||
// Only add not loop obj | ||
if (!loopSet.has(value)) { | ||
loopSet.add(value); | ||
// Init container if not exist | ||
if (!get(clone, path)) { | ||
clone = set(clone, path, createEmpty(value)); | ||
} | ||
Object.keys(value).forEach(function (key) { | ||
internalMerge([].concat(_toConsumableArray(path), [key])); | ||
}); | ||
} | ||
} else { | ||
clone = set(clone, path, value); | ||
} | ||
} | ||
internalMerge([]); | ||
}); | ||
return clone; | ||
} |
@@ -0,1 +1,6 @@ | ||
export declare type Path = (string | number)[]; | ||
export default function set<Entity = any, Output = Entity, Value = any>(entity: Entity, paths: (string | number)[], value: Value, removeIfUndefined?: boolean): Output; | ||
/** | ||
* Merge objects which will create | ||
*/ | ||
export declare function merge<T extends object>(...sources: T[]): T; |
@@ -8,2 +8,4 @@ "use strict"; | ||
exports.default = set; | ||
exports.merge = merge; | ||
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof")); | ||
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2")); | ||
@@ -44,2 +46,42 @@ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray")); | ||
return internalSet(entity, paths, value, removeIfUndefined); | ||
} | ||
function isObject(obj) { | ||
return (0, _typeof2.default)(obj) === 'object' && obj !== null && Object.getPrototypeOf(obj) === Object.prototype; | ||
} | ||
function createEmpty(source) { | ||
return Array.isArray(source) ? [] : {}; | ||
} | ||
/** | ||
* Merge objects which will create | ||
*/ | ||
function merge() { | ||
for (var _len = arguments.length, sources = new Array(_len), _key = 0; _key < _len; _key++) { | ||
sources[_key] = arguments[_key]; | ||
} | ||
var clone = createEmpty(sources[0]); | ||
var loopSet = new Set(); | ||
sources.forEach(function (src) { | ||
function internalMerge(path) { | ||
var value = (0, _get.default)(src, path); | ||
if (isObject(value) || Array.isArray(value)) { | ||
// Only add not loop obj | ||
if (!loopSet.has(value)) { | ||
loopSet.add(value); | ||
// Init container if not exist | ||
if (!(0, _get.default)(clone, path)) { | ||
clone = set(clone, path, createEmpty(value)); | ||
} | ||
Object.keys(value).forEach(function (key) { | ||
internalMerge([].concat((0, _toConsumableArray2.default)(path), [key])); | ||
}); | ||
} | ||
} else { | ||
clone = set(clone, path, value); | ||
} | ||
} | ||
internalMerge([]); | ||
}); | ||
return clone; | ||
} |
{ | ||
"name": "rc-util", | ||
"version": "5.31.2", | ||
"version": "5.32.0", | ||
"description": "Common Utils For React Component", | ||
@@ -5,0 +5,0 @@ "keywords": [ |
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
222805
6866