Move phone number format/parse into ts/types/PhoneNumber

This commit is contained in:
Scott Nonnenberg 2018-05-09 08:54:56 -07:00
parent 93d3abbf8d
commit 80b069e9b6
4 changed files with 20 additions and 21 deletions

View file

@ -1,6 +1,6 @@
// @ts-ignore
import Attachments from '../../app/attachments';
import { formatPhoneNumber } from '../util/formatPhoneNumber';
import { format as formatPhoneNumber } from '../types/PhoneNumber';
export interface Contact {
name: Name;

38
ts/types/PhoneNumber.ts Normal file
View file

@ -0,0 +1,38 @@
import { instance, PhoneNumberFormat } from '../util/libphonenumberInstance';
export function format(
phoneNumber: string,
options: {
ourRegionCode: string;
}
) {
try {
const { ourRegionCode } = options;
const parsedNumber = instance.parse(phoneNumber);
const regionCode = instance.getRegionCodeForNumber(parsedNumber);
if (ourRegionCode && regionCode === ourRegionCode) {
return instance.format(parsedNumber, PhoneNumberFormat.NATIONAL);
}
return instance.format(parsedNumber, PhoneNumberFormat.INTERNATIONAL);
} catch (error) {
return phoneNumber;
}
}
export function parse(
phoneNumber: string,
options: {
regionCode: string;
}
): string {
const { regionCode } = options;
const parsedNumber = instance.parse(phoneNumber, regionCode);
if (instance.isValidNumber(parsedNumber)) {
return instance.format(parsedNumber, PhoneNumberFormat.E164);
}
return phoneNumber;
}