vcApi.js 909 Bytes
/**
* Deep copy a JavaScript object.
* @param {Object} srcObj - The source object to be deep copied.
* @param {Object} targetObj - The target object to merge the copied properties into.
* @returns {Object} A deep copy of the object or the merged target object.
*/
export function deepCopy(srcObj, targetObj = {}) {
    if (srcObj === null || typeof srcObj !== 'object') {
        return srcObj;
    }
    let copy = targetObj || (Array.isArray(srcObj) ? [] : {});
    for (let key in srcObj) {
        if (Object.prototype.hasOwnProperty.call(srcObj, key)) {
            copy[key] = deepCopy(srcObj[key], copy[key]);
        }
    }
    return copy;
}

/**
 * Check if a value is a valid date.
 * @param {*} value - The value to check.
 * @returns {boolean} True if the value is a valid date, false otherwise.
 */
export function isDate(value) {
    return value instanceof Date && !isNaN(value.getTime());
}