Map the values of an object
(obj: T, fn: (value: T[keyof T]) => V)
| 85 | |
| 86 | /** Map the values of an object */ |
| 87 | function mapValues<T extends Record<string, unknown>, V>(obj: T, fn: (value: T[keyof T]) => V) { |
| 88 | return Object.keys(obj).reduce( |
| 89 | (result, key: keyof T) => { |
| 90 | result[key] = fn(obj[key]) |
| 91 | return result |
| 92 | }, |
| 93 | {} as Record<keyof T, V>, |
| 94 | ) |
| 95 | } |