UNPKG

@gouvfr-anct/lieux-de-mediation-numerique

Version:

📚 Bibliothèque pour la modélisation des lieux de médiation numérique respectant le standard du schéma de données des lieux de médiation numériques

12 lines (11 loc) • 743 B
import { TelephoneError } from './errors'; const TELEPHONE_REG_EXP = /^(?:(?:\+|00)(?:33|262|269|508|590|594|596|681|687|689)[\s.-]{0,3}(?:\(0\)[\s.-]{0,3})?|0)(?:(?:[1-9](?:[\s.-]?\d{2}){4}|\d{2}(?:[\s.-]\d{3}){2})|\d{6}|\s\d{3}(?:\s\d{2}){3})$/u; export const isValidTelephone = (telephone) => TELEPHONE_REG_EXP.test(telephone); const isValidContact = (contact) => contact.telephone == null || isValidTelephone(contact.telephone); const throwContactError = (contact) => { if (contact.telephone != null && !isValidTelephone(contact.telephone)) { throw new TelephoneError(contact.telephone); } throw new Error(); }; export const Contact = (contact) => isValidContact(contact) ? { ...contact } : throwContactError(contact);