/** * Functions in utils/*.ts can be used by the frontend or the backends * And so should not contain and platforma specific imports. */ export function getValueMapFromList( list: T[], key: K, valueKey: V, filterUndefined: boolean = true ): Record { if (filterUndefined) { list = list.filter( (f) => (f[valueKey] as unknown) !== undefined && (f[key] as unknown) !== undefined ); } return list.reduce((acc, f) => { const keyValue = String(f[key]); const value = f[valueKey]; acc[keyValue] = value; return acc; }, {} as Record); } export function getRandomString(): string { return Math.random().toString(36).slice(2, 8); } export async function sleep(durationMilliseconds: number = 1000) { return new Promise((r) => setTimeout(() => r(null), durationMilliseconds)); } export function getMapFromList( list: T[], name: K ): Record { const acc: Record = {}; for (const t of list) { const key = t[name]; if (key === undefined) { continue; } acc[String(key)] = t; } return acc; } export function getListFromMap(map: Record): T[] { return Object.keys(map).map((n) => map[n]); } export function getIsNullOrUndef(value: unknown): boolean { return value === null || value === undefined; }