API reference › @evolu/common › Set › mapSet
Call Signature
function mapSet<T, U>(
set: NonEmptyReadonlySet<T>,
mapper: (item: T) => U,
): NonEmptyReadonlySet<U>;
Defined in: packages/common/src/Set.ts:231
Maps a set using a mapper function, returning a new readonly set.
Preserves non-empty type.
Note: If the mapper produces duplicate values, the resulting set will have fewer elements.
Mapping non-empty sets
import {
assertEqual,
assertType,
createSet,
mapSet,
type NonEmptyReadonlySet,
} from "@evolu/common";
const original = createSet([1, 2, 3]);
const doubled = mapSet(original, (x) => x * 2);
const parity = mapSet(original, (x) => x % 2);
assertType<NonEmptyReadonlySet<number>, typeof doubled>();
assertEqual(doubled, new Set([2, 4, 6]));
assertEqual(parity, new Set([1, 0]));
Call Signature
function mapSet<T, U>(
set: ReadonlySet<T>,
mapper: (item: T) => U,
): ReadonlySet<U>;
Defined in: packages/common/src/Set.ts:236
Possibly empty set.