mirror of
https://github.com/Tria-plc/edr-platform.git
synced 2026-08-26 18:42:49 +00:00
fix: validation
This commit is contained in:
@@ -43,11 +43,17 @@ export function IsValidPhone(validationOptions?: ValidationOptions) {
|
||||
* Normalize a phone string to canonical E.164. Returns the canonical form when
|
||||
* parseable, otherwise the trimmed original (tolerant — never throws), or the
|
||||
* value unchanged when empty/nullish.
|
||||
*
|
||||
* Defaults the country to Ethiopia so bare local numbers (no "+", e.g. eTrade's
|
||||
* "0355235416") resolve the same way the frontend's own toEthiopianE164 already
|
||||
* assumes — without this hint, libphonenumber can't infer a country for a
|
||||
* number with no "+" prefix and silently falls through to the untouched local
|
||||
* string, which then never matches the "+251…" form submitted by the client.
|
||||
*/
|
||||
export function normalizeE164(
|
||||
value: string | null | undefined,
|
||||
): string | null | undefined {
|
||||
if (value === undefined || value === null || value === '') return value;
|
||||
const parsed = parsePhoneNumberFromString(value);
|
||||
const parsed = parsePhoneNumberFromString(value, 'ET');
|
||||
return parsed?.isValid() ? parsed.number : value.trim();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user