Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | 1x 2x 1x 4x 1x 26x 1x 9x 9x 19x 7x | export function keys<T extends Record<string, unknown>>(record: T): (keyof T)[] { return Object.keys(record); } export function values<T extends Record<string, unknown>>(record: T): T[keyof T][] { return Object.values(record) as T[keyof T][]; } type Entry<T extends Record<PropertyKey, unknown>> = { key: keyof T; value: T[keyof T]; }; export function entries<T extends Record<string, unknown>>(record: T): Entry<T>[] { return (Object.entries(record) as [keyof T, T[keyof T]][]).map(entry => ({ key: entry[0], value: entry[1] })); } export function mapRecord<T extends Record<string, unknown>, U>(record: T, callbackFn: (value: T[keyof T], key: keyof T) => U): Record<keyof T, U> { const newRecord = {} as Record<keyof T, U>; for (const entry of entries(record)) newRecord[entry.key] = callbackFn(entry.value, entry.key); return newRecord; } |