deepcopy
Version:
deep copy data
49 lines (36 loc) • 1.06 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.copy = copy;
var _copy_map = _interopRequireDefault(require("./copy_map.js"));
var _detector = require("./detector.js");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/**
* no operation
*/
function noop() {}
/**
* copy value
*
* @param {*} value
* @param {string} [type=null]
* @param {Function} [customizer=noop]
* @return {*}
*/
function copy(value, type = null, customizer = noop) {
if (arguments.length === 2 && typeof type === 'function') {
customizer = type;
type = null;
}
const valueType = type || (0, _detector.detectType)(value);
const copyFunction = _copy_map.default.get(valueType);
if (valueType === 'Object') {
const result = customizer(value, valueType);
if (result !== undefined) {
return result;
}
} // NOTE: TypedArray needs pass type to argument
return copyFunction ? copyFunction(value, valueType) : value;
}
//# sourceMappingURL=copier.js.map