UNPKG

sussy-util

Version:
28 lines (27 loc) 855 B
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const IsSomething_1 = __importDefault(require("../Classes/IsSomething")); /** * Recursively clones an object or array. * * @template T * @param {MutableObject<T> | MutableObject<T>[]} obj - The object or array to clone. * @returns {MutableObject<T> | MutableObject<T>[]} - A clone of the object or array. */ const clone = (obj) => { if (Array.isArray(obj)) { return obj.map(clone); } if (IsSomething_1.default.isObject(obj)) { const _clone = {}; for (const key in obj) { _clone[key] = clone(obj[key]); } return _clone; } return obj; }; exports.default = clone;