43 lines
1.1 KiB
JavaScript
43 lines
1.1 KiB
JavaScript
function sleep(ms) {
|
|
return new Promise((resolve) => setTimeout(resolve, ms))
|
|
}
|
|
|
|
function epochToDate(timestamp) {
|
|
const pad = (n, s = 2) => `${new Array(s).fill(0)}${n}`.slice(-s)
|
|
const date = new Date(parseInt((timestamp + "000").slice(0, 13)))
|
|
|
|
return `${pad(date.getDate())}/${pad(date.getMonth() + 1)}/${pad(date.getFullYear(), 4)}`
|
|
}
|
|
|
|
function isObject(object) {
|
|
return typeof object === "object"
|
|
}
|
|
|
|
function isObjectEmpty(object) {
|
|
return Object.keys(object).length == 0
|
|
}
|
|
|
|
function areObjectsEqual(obj1, obj2) {
|
|
if (!isObject(obj1) || !isObject(obj2)) return false
|
|
|
|
let props1 = Object.getOwnPropertyNames(obj1)
|
|
let props2 = Object.getOwnPropertyNames(obj2)
|
|
|
|
if (props1.length != props2.length) return false
|
|
|
|
for (let i = 0; i < props1.length; i++) {
|
|
let val1 = obj1[props1[i]]
|
|
let val2 = obj2[props1[i]]
|
|
|
|
let isObjects = isObject(val1) && isObject(val2)
|
|
|
|
if ((isObjects && !areObjectsEqual(val1, val2)) || (!isObjects && val1 !== val2)) return false
|
|
}
|
|
|
|
return true
|
|
}
|
|
|
|
function areArraysEqual(arr1, arr2) {
|
|
return JSON.stringify(arr1) == JSON.stringify(arr2)
|
|
}
|