return uuid();
}
- static async sleep(ms: number): Promise<NodeJS.Timeout> {
- return new Promise((resolve) => setTimeout(resolve, ms));
+ static async sleep(milliSeconds: number): Promise<NodeJS.Timeout> {
+ return new Promise((resolve) => setTimeout(resolve, milliSeconds));
}
- static secondstoHHMMSS(seconds): string {
- const date = new Date();
- date.setSeconds(seconds);
- return date.toISOString().substr(11, 8);
+ static secondsToHHMMSS(seconds: number): string {
+ return new Date(seconds * 1000).toISOString().substr(11, 8);
+ }
+
+ static milliSecondsToHHMMSS(milliSeconds: number): string {
+ return new Date(milliSeconds).toISOString().substr(11, 8);
}
static removeExtraEmptyLines(tab): void {
}
static roundTo(number: number, scale: number): number {
- return Utils.convertToFloat(number.toFixed(scale));
+ const roundPower = Math.pow(10, scale);
+ return Math.round(number * roundPower) / roundPower;
}
static getRandomFloatRounded(max: number, min = 0, scale = 2): number {
return date.toLocaleString() + prefixString;
}
- static objectHasOwnProperty(object, property) {
- return Object.prototype.hasOwnProperty.call(object, property);
- }
-
static cloneObject(object) {
return JSON.parse(JSON.stringify(object));
}
return typeof value === 'string';
}
- static isUndefined(value) {
+ static isUndefined(value): boolean {
return typeof value === 'undefined';
}
}
static isEmptyArray(object): boolean {
+ if (!object) {
+ return true;
+ }
if (Array.isArray(object) && object.length > 0) {
return false;
}
static isEmptyObject(obj): boolean {
return !Object.keys(obj).length;
}
+
+ static insertAt = (str: string, subStr: string, pos: number): string => `${str.slice(0, pos)}${subStr}${str.slice(pos)}`;
+
+ /**
+ * @param {number} [retryNumber=0]
+ * @return {number} - delay in milliseconds
+ */
+ static exponentialDelay(retryNumber = 0): number {
+ const delay = Math.pow(2, retryNumber) * 100;
+ const randomSum = delay * 0.2 * Math.random(); // 0-20% of the delay
+ return delay + randomSum;
+ }
}