UNPKG

@thiagodelgado111/yup-phone

Version:

Adds a phone number validation check to yup validator using google-libphonenumber.

5 lines (4 loc) 5.28 kB
import { PhoneNumberUtil } from 'google-libphonenumber';var b=PhoneNumberUtil.getInstance(); export default function(a,c){void 0===c&&(c=!1);return this.test({name:"phone",message:"string"===typeof a&&2===a.length?"${path} must be a valid phone number for region "+a:"${path} must be a valid phone number.",test:function(e){if(this.schema._nullable&&null===e)return this.resolve(!0);if("string"!==typeof a||2!==a.length)a="US",c=!1;try{var d=b.parseAndKeepRawInput(e,a);if(!b.isPossibleNumber(d))return!1;var g=b.getRegionCodeForNumber(d);var f=c?b.isValidNumberForRegion(d,a):b.isValidNumberForRegion(d, g)}catch(h){f=!1}return this.resolve(f)}})};var YUP_METHOD="phone";export{YUP_METHOD}; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieXVwLXBob25lLmVzbS5qcyIsInNvdXJjZXMiOlsiLi4vc3JjL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN0cmluZ1NjaGVtYSB9IGZyb20gJ3l1cCc7XG5pbXBvcnQgKiBhcyBnUGhvbmVOdW1iZXIgZnJvbSAnZ29vZ2xlLWxpYnBob25lbnVtYmVyJztcblxuY29uc3QgcGhvbmVVdGlsID0gZ1Bob25lTnVtYmVyLlBob25lTnVtYmVyVXRpbC5nZXRJbnN0YW5jZSgpO1xuXG5kZWNsYXJlIG1vZHVsZSAneXVwJyB7XG4gIGV4cG9ydCBpbnRlcmZhY2UgU3RyaW5nU2NoZW1hIHtcbiAgICBwaG9uZShjb3VudHJ5Q29kZT86IHN0cmluZywgc3RyaWN0PzogYm9vbGVhbik6IFN0cmluZ1NjaGVtYTtcbiAgfVxufVxuXG5jb25zdCBDTERSX1JFR0lPTl9DT0RFX1NJWkUgPSAyO1xuXG5jb25zdCBpc1ZhbGlkQ291bnRyeUNvZGUgPSAoY291bnRyeUNvZGU6IGFueSk6IGJvb2xlYW4gPT4gdHlwZW9mIGNvdW50cnlDb2RlID09PSAnc3RyaW5nJyAmJiBjb3VudHJ5Q29kZS5sZW5ndGggPT09IENMRFJfUkVHSU9OX0NPREVfU0laRTtcblxuZXhwb3J0IGNvbnN0IFlVUF9NRVRIT0QgPSAncGhvbmUnO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gcGhvbmVWYWxpZGF0aW9uTWV0aG9kKFxuICB0aGlzOiBTdHJpbmdTY2hlbWEsXG4gIGNvdW50cnlDb2RlPzogc3RyaW5nLFxuICBzdHJpY3Q6IGJvb2xlYW4gPSBmYWxzZSxcbikge1xuICBjb25zdCBlcnJNc2cgPSBpc1ZhbGlkQ291bnRyeUNvZGUoY291bnRyeUNvZGUpXG4gICAgPyBgXFwke3BhdGh9IG11c3QgYmUgYSB2YWxpZCBwaG9uZSBudW1iZXIgZm9yIHJlZ2lvbiAke2NvdW50cnlDb2RlfWBcbiAgICA6ICcke3BhdGh9IG11c3QgYmUgYSB2YWxpZCBwaG9uZSBudW1iZXIuJzsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby10ZW1wbGF0ZS1jdXJseS1pbi1zdHJpbmdcblxuICByZXR1cm4gdGhpcy50ZXN0KHtcbiAgICBuYW1lOiBZVVBfTUVUSE9ELFxuICAgIG1lc3NhZ2U6IGVyck1zZyxcbiAgICB0ZXN0KHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bmRlcnNjb3JlLWRhbmdsZVxuICAgICAgaWYgKHRoaXMuc2NoZW1hLl9udWxsYWJsZSAmJiB2YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gdGhpcy5yZXNvbHZlKHRydWUpO1xuICAgICAgfVxuXG4gICAgICBpZiAoIWlzVmFsaWRDb3VudHJ5Q29kZShjb3VudHJ5Q29kZSkpIHtcbiAgICAgICAgLy8gaWYgbm90IHZhbGlkIGNvdW50cnlDb2RlLCB0aGVuIHNldCBkZWZhdWx0IGNvdW50cnkgdG8gSW5kaWEgKElOKVxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICAgICAgY291bnRyeUNvZGUgPSAnVVMnO1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICAgICAgc3RyaWN0ID0gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIGxldCBpc1ZhbGlkO1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcGhvbmVOdW1iZXIgPSBwaG9uZVV0aWwucGFyc2VBbmRLZWVwUmF3SW5wdXQodmFsdWUsIGNvdW50cnlDb2RlKTtcbiAgICAgICAgaWYgKCFwaG9uZVV0aWwuaXNQb3NzaWJsZU51bWJlcihwaG9uZU51bWJlcikpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByZWdpb25Db2RlRnJvbVBob25lTnVtYmVyID0gcGhvbmVVdGlsLmdldFJlZ2lvbkNvZGVGb3JOdW1iZXIocGhvbmVOdW1iZXIpO1xuXG4gICAgICAgIC8qIGNoZWNrIGlmIHRoZSBjb3VudHJ5Q29kZSBwcm92aWRlZCBzaG91bGQgYmUgdXNlZCBhc1xuICAgICAgICBkZWZhdWx0IGNvdW50cnkgY29kZSBvciBzdHJpY3RseSBmb2xsb3dlZFxuICAgICAgKi9cbiAgICAgICAgaXNWYWxpZCA9IHN0cmljdFxuICAgICAgICAgID8gcGhvbmVVdGlsLmlzVmFsaWROdW1iZXJGb3JSZWdpb24ocGhvbmVOdW1iZXIsIGNvdW50cnlDb2RlKVxuICAgICAgICAgIDogcGhvbmVVdGlsLmlzVmFsaWROdW1iZXJGb3JSZWdpb24ocGhvbmVOdW1iZXIsIHJlZ2lvbkNvZGVGcm9tUGhvbmVOdW1iZXIpO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgaXNWYWxpZCA9IGZhbHNlO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcy5yZXNvbHZlKGlzVmFsaWQpO1xuICAgIH0sXG4gIH0pO1xufVxuIl0sIm5hbWVzIjpbInBob25lVXRpbCIsImdQaG9uZU51bWJlci5QaG9uZU51bWJlclV0aWwiLCJwaG9uZVZhbGlkYXRpb25NZXRob2QiLCJjb3VudHJ5Q29kZSIsInN0cmljdCIsInRlc3QiLCJuYW1lIiwiWVVQX01FVEhPRCIsIm1lc3NhZ2UiLCJlcnJNc2ciLCJDTERSX1JFR0lPTl9DT0RFX1NJWkUiLCJsZW5ndGgiLCJ2YWx1ZSIsInNjaGVtYSIsIl9udWxsYWJsZSIsInJlc29sdmUiLCJwaG9uZU51bWJlciIsInBhcnNlQW5kS2VlcFJhd0lucHV0IiwiaXNQb3NzaWJsZU51bWJlciIsInJlZ2lvbkNvZGVGcm9tUGhvbmVOdW1iZXIiLCJnZXRSZWdpb25Db2RlRm9yTnVtYmVyIiwiaXNWYWxpZCIsImlzVmFsaWROdW1iZXJGb3JSZWdpb24iLCJlcnJvciJdLCJtYXBwaW5ncyI6ImFBR0EsSUFBTUEsRUFBWUMsZUFBQUEsWUFBQUE7NkJBYUpDLFFBQUEsQ0FFWkMsQ0FGWSxDQUdaQyxDQUhZLENBR1csVUFBdkJBLElBQUFBLEVBQWtCLENBQUEsU0FNWCxLQUFBQyxLQUFBLENBQVUsQ0FDZkMsS0FYc0JDLE9BVVAsQ0FFZkMsUUFkNkUsUUFRaEVDLEdBUnlDLE1BUXRCTixFQUFuQk0sRUFWYUMsQ0FVYkQsR0FBbUJOLENBUnlEUSxPQVE1RUYsbURBQUFBLENBQ3lDTixDQUR6Q00sQ0FFWCx1Q0FFYSxDQUdmSixjQUFLTyxFQUFhLElBRVosSUFBQUMsT0FBQUMsWUFBbUMsT0FBVkYsUUFDcEIsS0FBQUcsUUFBQSxDQUFhLENBQUEsQ0FBYixLQWxCa0UsV0FBdkIsTUFxQjVCWixJQXZCQU8sSUF1QkFQLENBckIrRFEsUUF3QnJGUixDQUVBLENBRmMsSUFFZCxDQUFBQyxDQUFBLENBQVMsQ0FBQSxLQUlQLEtBQ0lZLEVBQWNoQixDQUFBaUIscUJBQUEsQ0FBK0JMLENBQS9CLENBQXNDVCxDQUF0QyxLQUNoQixDQUFDSCxDQUFBa0IsaUJBQUEsQ0FBMkJGLENBQTNCLFFBQ0ksQ0FBQSxNQUdIRyxFQUE0Qm5CLENBQUFvQix1QkFBQSxDQUFpQ0osQ0FBakMsQ0FLbEMsS0FBQUssRUFBVWpCLENBQUEsQ0FDTkosQ0FBQXNCLHVCQUFBLENBQWlDTixDQUFqQyxDQUE4Q2IsQ0FBOUMsQ0FETSxDQUVOSCxDQUFBc0IsdUJBQUEsQ0FBaUNOLENBQWpDO0FBQThDRyxDQUE5QyxDQWJGLENBY0YsTUFBT0ksQ0FBUCxDQUFjLENBQ2RGLENBQUEsQ0FBVSxDQUFBLENBREksT0FJVCxLQUFBTixRQUFBLENBQWFNLENBQWIsQ0FqQ1MsQ0FISCxDQUFWLENBTmdCLG9CQUpDZDsifQ==