HEX
Server: Apache/2.4.41
System: Linux mainweb 5.4.0-182-generic #202-Ubuntu SMP Fri Apr 26 12:29:36 UTC 2024 x86_64
User: nationalmedicaregrp (1119)
PHP: 8.3.7
Disabled: exec,passthru,shell_exec,system,popen,proc_open,pcntl_exec
Upload Files
File: /home/ubuntu/downloads/node_modules/xterm/src/common/Clone.ts
/**
 * Copyright (c) 2016 The xterm.js authors. All rights reserved.
 * @license MIT
 */

/*
 * A simple utility for cloning values
 */
export function clone<T>(val: T, depth: number = 5): T {
  if (typeof val !== 'object') {
    return val;
  }

  // If we're cloning an array, use an array as the base, otherwise use an object
  const clonedObject: any = Array.isArray(val) ? [] : {};

  for (const key in val) {
    // Recursively clone eack item unless we're at the maximum depth
    clonedObject[key] = depth <= 1 ? val[key] : (val[key] ? clone(val[key], depth - 1) : val[key]);
  }

  return clonedObject as T;
}