@aws/pdk
Version:
All documentation is located at: https://aws.github.io/aws-pdk
43 lines (39 loc) • 1.26 kB
JavaScript
var _clone =
/*#__PURE__*/
require("./internal/_clone.js");
var _curry1 =
/*#__PURE__*/
require("./internal/_curry1.js");
/**
* Creates a deep copy of the source that can be used in place of the source
* object without retaining any references to it.
* The source object may contain (nested) `Array`s and `Object`s,
* `Number`s, `String`s, `Boolean`s and `Date`s.
* `Function`s are assigned by reference rather than copied.
*
* Dispatches to a `clone` method if present.
*
* Note that if the source object has multiple nodes that share a reference,
* the returned object will have the same structure, but the references will
* be pointed to the location within the cloned value.
*
* @func
* @memberOf R
* @since v0.1.0
* @category Object
* @sig {*} -> {*}
* @param {*} value The object or array to clone
* @return {*} A deeply cloned copy of `val`
* @example
*
* const objects = [{}, {}, {}];
* const objectsClone = R.clone(objects);
* objects === objectsClone; //=> false
* objects[0] === objectsClone[0]; //=> false
*/
var clone =
/*#__PURE__*/
_curry1(function clone(value) {
return value != null && typeof value.clone === 'function' ? value.clone() : _clone(value, [], [], true);
});
module.exports = clone;