getPossibleCountriesForNumber.js 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports["default"] = getPossibleCountriesForNumber;
  6. var _metadata2 = _interopRequireDefault(require("../metadata.js"));
  7. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
  8. /**
  9. * Returns a list of countries that the phone number could potentially belong to.
  10. * @param {string} callingCode — Calling code.
  11. * @param {string} nationalNumber — National (significant) number.
  12. * @param {object} metadata — Metadata.
  13. * @return {string[]} A list of possible countries.
  14. */
  15. function getPossibleCountriesForNumber(callingCode, nationalNumber, metadata) {
  16. var _metadata = new _metadata2["default"](metadata);
  17. var possibleCountries = _metadata.getCountryCodesForCallingCode(callingCode);
  18. if (!possibleCountries) {
  19. return [];
  20. }
  21. return possibleCountries.filter(function (country) {
  22. return couldNationalNumberBelongToCountry(nationalNumber, country, metadata);
  23. });
  24. }
  25. function couldNationalNumberBelongToCountry(nationalNumber, country, metadata) {
  26. var _metadata = new _metadata2["default"](metadata);
  27. _metadata.selectNumberingPlan(country);
  28. if (_metadata.numberingPlan.possibleLengths().indexOf(nationalNumber.length) >= 0) {
  29. return true;
  30. }
  31. return false;
  32. }
  33. //# sourceMappingURL=getPossibleCountriesForNumber.js.map