first commit
This commit is contained in:
83
app_vue/node_modules/shallow-clone/index.js
generated
vendored
Normal file
83
app_vue/node_modules/shallow-clone/index.js
generated
vendored
Normal file
@ -0,0 +1,83 @@
|
||||
/*!
|
||||
* shallow-clone <https://github.com/jonschlinkert/shallow-clone>
|
||||
*
|
||||
* Copyright (c) 2015-present, Jon Schlinkert.
|
||||
* Released under the MIT License.
|
||||
*/
|
||||
|
||||
'use strict';
|
||||
|
||||
const valueOf = Symbol.prototype.valueOf;
|
||||
const typeOf = require('kind-of');
|
||||
|
||||
function clone(val, deep) {
|
||||
switch (typeOf(val)) {
|
||||
case 'array':
|
||||
return val.slice();
|
||||
case 'object':
|
||||
return Object.assign({}, val);
|
||||
case 'date':
|
||||
return new val.constructor(Number(val));
|
||||
case 'map':
|
||||
return new Map(val);
|
||||
case 'set':
|
||||
return new Set(val);
|
||||
case 'buffer':
|
||||
return cloneBuffer(val);
|
||||
case 'symbol':
|
||||
return cloneSymbol(val);
|
||||
case 'arraybuffer':
|
||||
return cloneArrayBuffer(val);
|
||||
case 'float32array':
|
||||
case 'float64array':
|
||||
case 'int16array':
|
||||
case 'int32array':
|
||||
case 'int8array':
|
||||
case 'uint16array':
|
||||
case 'uint32array':
|
||||
case 'uint8clampedarray':
|
||||
case 'uint8array':
|
||||
return cloneTypedArray(val);
|
||||
case 'regexp':
|
||||
return cloneRegExp(val);
|
||||
case 'error':
|
||||
return Object.create(val);
|
||||
default: {
|
||||
return val;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function cloneRegExp(val) {
|
||||
const flags = val.flags !== void 0 ? val.flags : (/\w+$/.exec(val) || void 0);
|
||||
const re = new val.constructor(val.source, flags);
|
||||
re.lastIndex = val.lastIndex;
|
||||
return re;
|
||||
}
|
||||
|
||||
function cloneArrayBuffer(val) {
|
||||
const res = new val.constructor(val.byteLength);
|
||||
new Uint8Array(res).set(new Uint8Array(val));
|
||||
return res;
|
||||
}
|
||||
|
||||
function cloneTypedArray(val, deep) {
|
||||
return new val.constructor(val.buffer, val.byteOffset, val.length);
|
||||
}
|
||||
|
||||
function cloneBuffer(val) {
|
||||
const len = val.length;
|
||||
const buf = Buffer.allocUnsafe ? Buffer.allocUnsafe(len) : Buffer.from(len);
|
||||
val.copy(buf);
|
||||
return buf;
|
||||
}
|
||||
|
||||
function cloneSymbol(val) {
|
||||
return valueOf ? Object(valueOf.call(val)) : {};
|
||||
}
|
||||
|
||||
/**
|
||||
* Expose `clone`
|
||||
*/
|
||||
|
||||
module.exports = clone;
|
Reference in New Issue
Block a user