UNPKG

@atproto/common-web

Version:

Shared web-platform-friendly code for atproto libraries

24 lines (22 loc) 449 B
export function keyBy<T, K extends keyof T>( arr: readonly T[], key: K, ): Map<T[K], T> { return arr.reduce((acc, cur) => { acc.set(cur[key], cur) return acc }, new Map<T[K], T>()) } export const mapDefined = <T, S>( arr: T[], fn: (obj: T) => S | undefined, ): S[] => { const output: S[] = [] for (const item of arr) { const val = fn(item) if (val !== undefined) { output.push(val) } } return output }