mirror of
https://github.com/Tria-plc/edr-platform.git
synced 2026-09-07 08:25:43 +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
|
* Normalize a phone string to canonical E.164. Returns the canonical form when
|
||||||
* parseable, otherwise the trimmed original (tolerant — never throws), or the
|
* parseable, otherwise the trimmed original (tolerant — never throws), or the
|
||||||
* value unchanged when empty/nullish.
|
* 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(
|
export function normalizeE164(
|
||||||
value: string | null | undefined,
|
value: string | null | undefined,
|
||||||
): string | null | undefined {
|
): string | null | undefined {
|
||||||
if (value === undefined || value === null || value === '') return value;
|
if (value === undefined || value === null || value === '') return value;
|
||||||
const parsed = parsePhoneNumberFromString(value);
|
const parsed = parsePhoneNumberFromString(value, 'ET');
|
||||||
return parsed?.isValid() ? parsed.number : value.trim();
|
return parsed?.isValid() ? parsed.number : value.trim();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user