export function unique(arr: TValue[], getKey: (item: TValue) => TKey): TValue[] { const keys = new Set(); return arr.filter((v: TValue) => { const key = getKey(v); if (keys.has(key)) return false; keys.add(key); return true; }); }