File size: 534 Bytes
4c76b0d | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | /** Returns unique normalized string values while preserving first-seen order. */
export function normalizeContractStringValues(
values: readonly string[] | undefined,
normalize: (value: string) => string = (value) => value,
): string[] {
const result: string[] = [];
const seen = new Set<string>();
for (const value of values ?? []) {
const normalized = normalize(value);
if (!normalized || seen.has(normalized)) {
continue;
}
seen.add(normalized);
result.push(normalized);
}
return result;
}
|