+import Configuration from './Configuration';
+import { WebSocketCloseEventStatusString } from '../types/WebSocket';
+import { WorkerProcessType } from '../types/Worker';
import { v4 as uuid } from 'uuid';
export default class Utils {
}
static secondsToHHMMSS(seconds: number): string {
- return new Date(seconds * 1000).toISOString().substr(11, 8);
+ return Utils.milliSecondsToHHMMSS(seconds * 1000);
}
static milliSecondsToHHMMSS(milliSeconds: number): string {
}
static isNullOrUndefined(value): boolean {
- // eslint-disable-next-line no-eq-null
+ // eslint-disable-next-line no-eq-null, eqeqeq
if (value == null) {
return true;
}
/**
* @param {number} [retryNumber=0]
- * @return {number} - delay in milliseconds
+ * @returns {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;
}
+
+ static getWebSocketCloseEventStatusString(code: number): string {
+ if (code >= 0 && code <= 999) {
+ return '(Unused)';
+ } else if (code >= 1016) {
+ if (code <= 1999) {
+ return '(For WebSocket standard)';
+ } else if (code <= 2999) {
+ return '(For WebSocket extensions)';
+ } else if (code <= 3999) {
+ return '(For libraries and frameworks)';
+ } else if (code <= 4999) {
+ return '(For applications)';
+ }
+ }
+ if (!Utils.isUndefined(WebSocketCloseEventStatusString[code])) {
+ return WebSocketCloseEventStatusString[code] as string;
+ }
+ return '(Unknown)';
+ }
+
+ static workerPoolInUse(): boolean {
+ return [WorkerProcessType.DYNAMIC_POOL, WorkerProcessType.STATIC_POOL].includes(Configuration.getWorkerProcess());
+ }
+
+ static workerDynamicPoolInUse(): boolean {
+ return Configuration.getWorkerProcess() === WorkerProcessType.DYNAMIC_POOL;
+ }
}