@fyne/yup-phone
Version:
Adds a phone number validation check to yup validator using google-libphonenumber.
3 lines (2 loc) • 4.25 kB
JavaScript
import { PhoneNumberUtil } from 'google-libphonenumber';import { addMethod, string } from 'yup';var c=PhoneNumberUtil.getInstance();addMethod(string,"phone",function(a,d){void 0===d&&(d=!1);return this.test("phone","string"===typeof a&&2===a.length?"${path} must be a valid phone number for region "+a:"${path} must be a valid phone number.",function(b){if("string"!==typeof a||2!==a.length)a="IN",d=!1;b=c.parseAndKeepRawInput(b,a);if(!c.isPossibleNumber(b))return!1;var e=c.getRegionCodeForNumber(b);return d?c.isValidNumberForRegion(b,a):c.isValidNumberForRegion(b,e)})});
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieXVwLXBob25lLmVzbS5qcyIsInNvdXJjZXMiOlsiLi4vc3JjL3l1cC1waG9uZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBZdXAgZnJvbSAneXVwJztcbmltcG9ydCAqIGFzIGdQaG9uZU51bWJlciBmcm9tICdnb29nbGUtbGlicGhvbmVudW1iZXInO1xuXG5jb25zdCBwaG9uZVV0aWwgPSBnUGhvbmVOdW1iZXIuUGhvbmVOdW1iZXJVdGlsLmdldEluc3RhbmNlKCk7XG5cbmRlY2xhcmUgbW9kdWxlICd5dXAnIHtcbiAgZXhwb3J0IGludGVyZmFjZSBTdHJpbmdTY2hlbWEge1xuICAgIHBob25lKGNvdW50cnlDb2RlPzogc3RyaW5nLCBzdHJpY3Q/OiBib29sZWFuKTogU3RyaW5nU2NoZW1hO1xuICB9XG59XG5cbmNvbnN0IFlVUF9QSE9ORV9NRVRIT0QgPSAncGhvbmUnO1xuY29uc3QgQ0xEUl9SRUdJT05fQ09ERV9TSVpFID0gMjtcblxuY29uc3QgaXNWYWxpZENvdW50cnlDb2RlID0gKGNvdW50cnlDb2RlOiBhbnkpOiBib29sZWFuID0+XG4gIHR5cGVvZiBjb3VudHJ5Q29kZSA9PT0gJ3N0cmluZycgJiZcbiAgY291bnRyeUNvZGUubGVuZ3RoID09PSBDTERSX1JFR0lPTl9DT0RFX1NJWkU7XG5cbll1cC5hZGRNZXRob2QoWXVwLnN0cmluZywgWVVQX1BIT05FX01FVEhPRCwgZnVuY3Rpb24geXVwUGhvbmUoXG4gIGNvdW50cnlDb2RlPzogc3RyaW5nLFxuICBzdHJpY3Q6IGJvb2xlYW4gPSBmYWxzZSxcbikge1xuICBjb25zdCBlcnJNc2cgPSBpc1ZhbGlkQ291bnRyeUNvZGUoY291bnRyeUNvZGUpXG4gICAgPyBgXFwke3BhdGh9IG11c3QgYmUgYSB2YWxpZCBwaG9uZSBudW1iZXIgZm9yIHJlZ2lvbiAke2NvdW50cnlDb2RlfWBcbiAgICA6ICcke3BhdGh9IG11c3QgYmUgYSB2YWxpZCBwaG9uZSBudW1iZXIuJztcbiAgcmV0dXJuIHRoaXMudGVzdChZVVBfUEhPTkVfTUVUSE9ELCBlcnJNc2csICh2YWx1ZTogc3RyaW5nKSA9PiB7XG4gICAgaWYgKCFpc1ZhbGlkQ291bnRyeUNvZGUoY291bnRyeUNvZGUpKSB7XG4gICAgICAvLyBpZiBub3QgdmFsaWQgY291bnRyeUNvZGUsIHRoZW4gc2V0IGRlZmF1bHQgY291bnRyeSB0byBJbmRpYSAoSU4pXG4gICAgICBjb3VudHJ5Q29kZSA9ICdJTic7XG4gICAgICBzdHJpY3QgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCBwaG9uZU51bWJlciA9IHBob25lVXRpbC5wYXJzZUFuZEtlZXBSYXdJbnB1dCh2YWx1ZSwgY291bnRyeUNvZGUpO1xuXG4gICAgaWYgKCFwaG9uZVV0aWwuaXNQb3NzaWJsZU51bWJlcihwaG9uZU51bWJlcikpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCByZWdpb25Db2RlRnJvbVBob25lTnVtYmVyID0gcGhvbmVVdGlsLmdldFJlZ2lvbkNvZGVGb3JOdW1iZXIoXG4gICAgICBwaG9uZU51bWJlcixcbiAgICApO1xuXG4gICAgLyogY2hlY2sgaWYgdGhlIGNvdW50cnlDb2RlIHByb3ZpZGVkIHNob3VsZCBiZSB1c2VkIGFzXG4gICAgICAgZGVmYXVsdCBjb3VudHJ5IGNvZGUgb3Igc3RyaWN0bHkgZm9sbG93ZWRcbiAgICAgKi9cbiAgICByZXR1cm4gc3RyaWN0XG4gICAgICA/IHBob25lVXRpbC5pc1ZhbGlkTnVtYmVyRm9yUmVnaW9uKHBob25lTnVtYmVyLCBjb3VudHJ5Q29kZSlcbiAgICAgIDogcGhvbmVVdGlsLmlzVmFsaWROdW1iZXJGb3JSZWdpb24oXG4gICAgICAgIHBob25lTnVtYmVyLFxuICAgICAgICByZWdpb25Db2RlRnJvbVBob25lTnVtYmVyLFxuICAgICAgICApO1xuICB9KTtcbn0pO1xuIl0sIm5hbWVzIjpbInBob25lVXRpbCIsImdQaG9uZU51bWJlci5QaG9uZU51bWJlclV0aWwiLCJZdXAuYWRkTWV0aG9kIiwiWXVwLnN0cmluZyIsIllVUF9QSE9ORV9NRVRIT0QiLCJ5dXBQaG9uZSIsImNvdW50cnlDb2RlIiwic3RyaWN0IiwidGVzdCIsImVyck1zZyIsIkNMRFJfUkVHSU9OX0NPREVfU0laRSIsImxlbmd0aCIsInZhbHVlIiwicGhvbmVOdW1iZXIiLCJwYXJzZUFuZEtlZXBSYXdJbnB1dCIsImlzUG9zc2libGVOdW1iZXIiLCJyZWdpb25Db2RlRnJvbVBob25lTnVtYmVyIiwiZ2V0UmVnaW9uQ29kZUZvck51bWJlciIsImlzVmFsaWROdW1iZXJGb3JSZWdpb24iXSwibWFwcGluZ3MiOiJhQUdBLElBQU1BLEVBQVlDLGVBQUFBLFlBQUFBLEVBZWxCQyxVQUFBQSxDQUFjQyxNQUFkRCxDQVB5QkUsT0FPekJGLENBQTRDRyxRQUFBLENBQzFDQyxDQUQwQyxDQUUxQ0MsQ0FGMEMsQ0FFbkIsVUFBdkJBLElBQUFBLEVBQWtCLENBQUEsU0FLWCxLQUFBQyxLQUFBLENBZGdCSixPQWNoQixDQVZnQixRQU9SSyxHQVBmLE1BT2tDSCxFQUFuQkcsRUFWYUMsQ0FVYkQsR0FBbUJILENBTmxDSyxPQU1lRixtREFBQUEsQ0FDeUNILENBRHpDRyxDQUVYLHVDQUNHLENBQW9DLFNBQUNHLEVBQWlCLElBVnRDLFdBQXZCLE1BVzBCTixJQWRFSSxJQWNGSixDQVYxQkssUUFZSUwsQ0FDQSxDQURjLElBQ2QsQ0FBQUMsQ0FBQSxDQUFTLENBQUEsQ0FHTE0sRUFBQUEsQ0FBY2IsQ0FBQWMscUJBQUEsQ0FBK0JGLENBQS9CLENBQXNDTixDQUF0QyxLQUVoQixDQUFDTixDQUFBZSxpQkFBQSxDQUEyQkYsQ0FBM0IsUUFDSSxDQUFBLE1BR0hHLEVBQTRCaEIsQ0FBQWlCLHVCQUFBLENBQ2hDSixDQURnQyxRQU8zQk4sRUFBQSxDQUNIUCxDQUFBa0IsdUJBQUEsQ0FBaUNMLENBQWpDLENBQThDUCxDQUE5QyxDQURHLENBRUhOLENBQUFrQix1QkFBQSxDQUNBTCxDQURBLENBRUFHLENBRkEsQ0F0QnVELENBQXRELENBTGdCLENBRnpCZDsifQ==