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
70 lines
2.2 KiB
4 days ago
|
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}`;
|
||
|
}
|