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

17 lines (16 loc) • 961 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Contact = exports.isValidTelephone = void 0; const errors_1 = require("./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; const isValidTelephone = (telephone) => TELEPHONE_REG_EXP.test(telephone); exports.isValidTelephone = isValidTelephone; const isValidContact = (contact) => contact.telephone == null || (0, exports.isValidTelephone)(contact.telephone); const throwContactError = (contact) => { if (contact.telephone != null && !(0, exports.isValidTelephone)(contact.telephone)) { throw new errors_1.TelephoneError(contact.telephone); } throw new Error(); }; const Contact = (contact) => isValidContact(contact) ? { ...contact } : throwContactError(contact); exports.Contact = Contact;