meilisearch
Version:
The Meilisearch JS client for Node.js and the browser.
40 lines (34 loc) • 1 kB
text/typescript
/** Removes undefined entries from object */
function removeUndefinedFromObject(obj: Record<string, any>): object {
return Object.entries(obj).reduce((acc, curEntry) => {
const [key, val] = curEntry
if (val !== undefined) acc[key] = val
return acc
}, {} as Record<string, any>)
}
async function sleep(ms: number): Promise<void> {
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,
}