/** * * Utilities related to email normalization. Currently * trivial, but could potentially need special per-domain * rules in future. * * Email addresses are a bit slippery. Domain names are * case insensitive, but user names may or may not be, * depending on the mail server handling the domain. * Other special treatment of user names may also be in * place for particular domains (periods, plus sign, etc). * * We treat emails as case-insensitive for the purposes * of determining equality of emails, and indexing users * by email address. * */ /** * * Convert the supplied email address to a normalized form * that we will use for indexing and equality tests. * Many possible email addresses could map to the same * normalized result; as far as we are concerned those * addresses are equivalent. * * The normalization we do is a simple lowercase. This * means we won't be able to treat both Jane@x.y and * jane@x.y as separate email addresses, even through * they may in fact be separate mailboxes on x.y. * * The normalized email is not something we should show * the user in the UI, but is rather for internal purposes. * * The original non-normalized email is called a * "display email" to distinguish it from a "normalized * email" * */ export function normalizeEmail(displayEmail: string): string { // We take the lower case, without use of locale. return displayEmail.toLowerCase(); }