| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.isPlainObject = exports.clone = exports.recursive = exports.merge = exports.main = void 0;
- module.exports = exports = main;
- exports.default = main;
- function main() {
- var items = [];
- for (var _i = 0; _i < arguments.length; _i++) {
- items[_i] = arguments[_i];
- }
- return merge.apply(void 0, items);
- }
- exports.main = main;
- main.clone = clone;
- main.isPlainObject = isPlainObject;
- main.recursive = recursive;
- function merge() {
- var items = [];
- for (var _i = 0; _i < arguments.length; _i++) {
- items[_i] = arguments[_i];
- }
- return _merge(items[0] === true, false, items);
- }
- exports.merge = merge;
- function recursive() {
- var items = [];
- for (var _i = 0; _i < arguments.length; _i++) {
- items[_i] = arguments[_i];
- }
- return _merge(items[0] === true, true, items);
- }
- exports.recursive = recursive;
- function clone(input) {
- if (Array.isArray(input)) {
- var output = [];
- for (var index = 0; index < input.length; ++index)
- output.push(clone(input[index]));
- return output;
- }
- else if (isPlainObject(input)) {
- var output = {};
- for (var index in input)
- output[index] = clone(input[index]);
- return output;
- }
- else {
- return input;
- }
- }
- exports.clone = clone;
- function isPlainObject(input) {
- return input && typeof input === 'object' && !Array.isArray(input);
- }
- exports.isPlainObject = isPlainObject;
- function _recursiveMerge(base, extend) {
- if (!isPlainObject(base))
- return extend;
- for (var key in extend) {
- if (key === '__proto__' || key === 'constructor' || key === 'prototype')
- continue;
- base[key] = (isPlainObject(base[key]) && isPlainObject(extend[key])) ?
- _recursiveMerge(base[key], extend[key]) :
- extend[key];
- }
- return base;
- }
- function _merge(isClone, isRecursive, items) {
- var result;
- if (isClone || !isPlainObject(result = items.shift()))
- result = {};
- for (var index = 0; index < items.length; ++index) {
- var item = items[index];
- if (!isPlainObject(item))
- continue;
- for (var key in item) {
- if (key === '__proto__' || key === 'constructor' || key === 'prototype')
- continue;
- var value = isClone ? clone(item[key]) : item[key];
- result[key] = isRecursive ? _recursiveMerge(result[key], value) : value;
- }
- }
- return result;
- }
|