Files
two-keys/shared/src/normalize.ts
T
joshuaandClaude Opus 5.5 0de6617c82 V1.0.0
Two Keys: co-op mystery games for couples. Eight games on four engines (story, defuse, sync, labyrinth), two-device and couch play, mobile-first UI.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 22:36:12 +02:00

19 lines
668 B
TypeScript

/**
* Answer normalizer: uppercase → strip accents → drop everything except A-Z and 0-9.
* "20:40" and "20 40" → "2040"; "Fire Swart, Friday!" → "FIRESWARTFRIDAY".
*/
export function normalizeAnswer(input: string): string {
return String(input)
.toUpperCase()
.normalize('NFD')
.replace(/[̀-ͯ]/g, '')
.replace(/[^A-Z0-9]/g, '');
}
/** True if the normalized input equals any normalized accepted answer. */
export function matchesAnswer(input: string, answers: readonly string[]): boolean {
const value = normalizeAnswer(input);
if (value === '') return false;
return answers.some((answer) => normalizeAnswer(answer) === value);
}