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());
}