mirror of
https://github.com/react/react-native-devtools-frontend.git
synced 2026-10-06 03:51:24 +08:00
DISABLE_THIRD_PARTY_CHECK=new npm module causes package-lock change We can get rid of a custom script and use ESLint for these rules. Additionally this means editors will highlight the issue in the editor. Change-Id: I552b52e7f07b4e7430b3f685dbc3b5fad36ffff2 Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2052167 Reviewed-by: Paul Lewis <aerotwist@chromium.org> Commit-Queue: Jack Franklin <jacktfranklin@chromium.org>
56 lines
1.7 KiB
JavaScript
56 lines
1.7 KiB
JavaScript
var _curry3 = /*#__PURE__*/require('./internal/_curry3');
|
|
|
|
var _has = /*#__PURE__*/require('./internal/_has');
|
|
|
|
var _isArray = /*#__PURE__*/require('./internal/_isArray');
|
|
|
|
var _isInteger = /*#__PURE__*/require('./internal/_isInteger');
|
|
|
|
var assoc = /*#__PURE__*/require('./assoc');
|
|
|
|
var isNil = /*#__PURE__*/require('./isNil');
|
|
|
|
/**
|
|
* Makes a shallow clone of an object, setting or overriding the nodes required
|
|
* to create the given path, and placing the specific value at the tail end of
|
|
* that path. Note that this copies and flattens prototype properties onto the
|
|
* new object as well. All non-primitive properties are copied by reference.
|
|
*
|
|
* @func
|
|
* @memberOf R
|
|
* @since v0.8.0
|
|
* @category Object
|
|
* @typedefn Idx = String | Int
|
|
* @sig [Idx] -> a -> {a} -> {a}
|
|
* @param {Array} path the path to set
|
|
* @param {*} val The new value
|
|
* @param {Object} obj The object to clone
|
|
* @return {Object} A new object equivalent to the original except along the specified path.
|
|
* @see R.dissocPath
|
|
* @example
|
|
*
|
|
* R.assocPath(['a', 'b', 'c'], 42, {a: {b: {c: 0}}}); //=> {a: {b: {c: 42}}}
|
|
*
|
|
* // Any missing or non-object keys in path will be overridden
|
|
* R.assocPath(['a', 'b', 'c'], 42, {a: 5}); //=> {a: {b: {c: 42}}}
|
|
*/
|
|
|
|
|
|
var assocPath = /*#__PURE__*/_curry3(function assocPath(path, val, obj) {
|
|
if (path.length === 0) {
|
|
return val;
|
|
}
|
|
var idx = path[0];
|
|
if (path.length > 1) {
|
|
var nextObj = !isNil(obj) && _has(idx, obj) ? obj[idx] : _isInteger(path[1]) ? [] : {};
|
|
val = assocPath(Array.prototype.slice.call(path, 1), val, nextObj);
|
|
}
|
|
if (_isInteger(idx) && _isArray(obj)) {
|
|
var arr = [].concat(obj);
|
|
arr[idx] = val;
|
|
return arr;
|
|
} else {
|
|
return assoc(idx, val, obj);
|
|
}
|
|
});
|
|
module.exports = assocPath; |