mirror of
https://github.com/TheNetsky/Microsoft-Rewards-Script.git
synced 2026-01-10 18:36:17 +00:00
50 lines
1.4 KiB
TypeScript
50 lines
1.4 KiB
TypeScript
import ms from 'ms'
|
|
|
|
export default class Util {
|
|
|
|
async wait(ms: number): Promise<void> {
|
|
return new Promise<void>((resolve) => {
|
|
setTimeout(resolve, ms)
|
|
})
|
|
}
|
|
|
|
getFormattedDate(ms = Date.now()): string {
|
|
const today = new Date(ms)
|
|
const month = String(today.getMonth() + 1).padStart(2, '0') // January is 0
|
|
const day = String(today.getDate()).padStart(2, '0')
|
|
const year = today.getFullYear()
|
|
|
|
return `${month}/${day}/${year}`
|
|
}
|
|
|
|
shuffleArray<T>(array: T[]): T[] {
|
|
return array.map(value => ({ value, sort: Math.random() }))
|
|
.sort((a, b) => a.sort - b.sort)
|
|
.map(({ value }) => value)
|
|
}
|
|
|
|
randomNumber(min: number, max: number): number {
|
|
return Math.floor(Math.random() * (max - min + 1)) + min
|
|
}
|
|
|
|
chunkArray<T>(arr: T[], numChunks: number): T[][] {
|
|
const chunkSize = Math.ceil(arr.length / numChunks)
|
|
const chunks: T[][] = []
|
|
|
|
for (let i = 0; i < arr.length; i += chunkSize) {
|
|
const chunk = arr.slice(i, i + chunkSize)
|
|
chunks.push(chunk)
|
|
}
|
|
|
|
return chunks
|
|
}
|
|
|
|
stringToMs(input: string | number): number {
|
|
const milisec = ms(input.toString())
|
|
if (!milisec) {
|
|
throw new Error('The string provided cannot be parsed to a valid time! Use a format like "1 min", "1m" or "1 minutes"')
|
|
}
|
|
return milisec
|
|
}
|
|
|
|
} |