/** 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, }