This repository has been archived on 2024-07-27. You can view files and clone it, but cannot push or open issues or pull requests.
keksAccountGUI/node_modulesOLD/shallow-clone/index.js
2019-08-11 20:48:02 +02:00

57 lines
1 KiB
JavaScript

/*!
* shallow-clone <https://github.com/jonschlinkert/shallow-clone>
*
* Copyright (c) 2015-2017, Jon Schlinkert.
* Released under the MIT License.
*/
'use strict';
var isObject = require('is-extendable');
var mixin = require('mixin-object');
var typeOf = require('kind-of');
/**
* Shallow copy an object, array or primitive.
*
* @param {any} `val`
* @return {any}
*/
function clone(val) {
var type = typeOf(val);
if (clone.hasOwnProperty(type)) {
return clone[type](val);
}
return val;
}
clone.array = function cloneArray(arr) {
return arr.slice();
};
clone.date = function cloneDate(date) {
return new Date(+date);
};
clone.object = function cloneObject(obj) {
if (isObject(obj)) {
return mixin({}, obj);
} else {
return obj;
}
};
clone.regexp = function cloneRegExp(re) {
var flags = '';
flags += re.multiline ? 'm' : '';
flags += re.global ? 'g' : '';
flags += re.ignorecase ? 'i' : '';
return new RegExp(re.source, flags);
};
/**
* Expose `clone`
*/
module.exports = clone;