/** Removes undefined entries from object */ function removeUndefinedFromObject(obj: Record): object { return Object.entries(obj).reduce( (acc, curEntry) => { const [key, val] = curEntry; if (val !== undefined) acc[key] = val; return acc; }, {} as Record, ); } async function sleep(ms: number): Promise { return await new Promise((resolve) => setTimeout(resolve, ms)); } function addProtocolIfNotPresent(host: string): string { if (!(host.startsWith("https://") || host.startsWith("http://"))) { return `http://${host}`; } return host; } function addTrailingSlash(url: string): string { if (!url.endsWith("/")) { url += "/"; } return url; } function validateUuid4(uuid: string): boolean { const regexExp = /^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/gi; return regexExp.test(uuid); } export { sleep, removeUndefinedFromObject, addProtocolIfNotPresent, addTrailingSlash, validateUuid4, };