You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

70 lines
2.2 KiB

function findDifferentProperties(objA, objB, prefix = '') {
const differentProps = {};
for (const key in objA) {
if (objA.hasOwnProperty(key)) {
const propPath = prefix ? `${prefix}.${key}` : key;
if (typeof objA[key] === 'object' && typeof objB[key] === 'object') {
const nestedDifferences = findDifferentProperties(objA[key], objB[key], propPath);
if (Object.keys(nestedDifferences).length > 0) {
differentProps[key] = nestedDifferences;
}
} else if (objA[key] !== objB[key]) {
// differentProps[key] = {
// oldValue: objA[key],
// newValue: objB[key],
// };
differentProps[key] = objB[key];
}
}
}
return differentProps;
}
function flattenObject(obj, parentKey = '') {
const result = {};
for (const key in obj) {
if (obj.hasOwnProperty(key)) {
const newKey = parentKey ? `${parentKey}.${key}` : key;
if (typeof obj[key] === 'object' && !Array.isArray(obj[key])) {
const flattened = flattenObject(obj[key], newKey);
Object.assign(result, flattened);
} else {
result[newKey] = obj[key];
}
}
}
return result;
}
function byteString(value) {
const GB = 1024 * 1024 * 1024;
const MB = 1024 * 1024;
if (value >= GB) {
return (value / GB).toFixed(2).toString() + "GB"
}
else if (value >= MB) {
return (value / MB).toFixed(2).toString() + "MB"
}
else if (value >= 1024) {
return (value / 1024).toFixed(2).toString() + "KB"
}
else {
return value.toString() + "byte"
}
}
function durationFormat(seconds) {
seconds = Math.floor(seconds);
const hours = Math.floor(seconds / 3600);
const minutes = Math.floor((seconds % 3600) / 60);
const secs = seconds % 60;
const formattedHours = String(hours).padStart(2, '0');
const formattedMinutes = String(minutes).padStart(2, '0');
const formattedSeconds = String(secs).padStart(2, '0');
return `${formattedHours}:${formattedMinutes}:${formattedSeconds}`;
}