UNPKG

5.31 kBSource Map (JSON)View Raw
1{"version":3,"sources":["../source/getNumberType.js"],"names":["getNumberType","normalizeArguments","arguments","input","options","metadata","args","Array","prototype","slice","call","arg_1","arg_2","arg_3","arg_4","defaultCountry","undefined","is_object","TypeError","_"],"mappings":";;;;;;;;AAAA;;AACA;;AACA;;;;;;;;;;;;;;AAEA;AACe,SAASA,aAAT,GACf;AAAA,4BACsCC,kBAAkB,CAACC,SAAD,CADxD;AAAA,MACSC,KADT,uBACSA,KADT;AAAA,MACgBC,OADhB,uBACgBA,OADhB;AAAA,MACyBC,QADzB,uBACyBA,QADzB;;AAEC,SAAO,gCAAeF,KAAf,EAAsBC,OAAtB,EAA+BC,QAA/B,CAAP;AACA,C,CAED;;;AACO,SAASJ,kBAAT,CAA4BK,IAA5B,EACP;AAAA,8BACsCC,KAAK,CAACC,SAAN,CAAgBC,KAAhB,CAAsBC,IAAtB,CAA2BJ,IAA3B,CADtC;AAAA;AAAA,MACQK,KADR;AAAA,MACeC,KADf;AAAA,MACsBC,KADtB;AAAA,MAC6BC,KAD7B;;AAGC,MAAIX,KAAJ;AACA,MAAIC,OAAO,GAAG,EAAd;AACA,MAAIC,QAAJ,CALD,CAOC;AACA;;AACA,MAAI,OAAOM,KAAP,KAAiB,QAArB,EACA;AACC;AACA;AACA;AACA,QAAI,QAAOC,KAAP,MAAiB,QAArB,EACA;AACC,UAAIE,KAAJ,EACA;AACCV,QAAAA,OAAO,GAAGS,KAAV;AACAR,QAAAA,QAAQ,GAAGS,KAAX;AACA,OAJD,MAMA;AACCT,QAAAA,QAAQ,GAAGQ,KAAX;AACA,OATF,CAWC;AACA;AACA;AACA;AACA;;;AACA,UAAI,qCAAoBF,KAApB,CAAJ,EACA;AACCR,QAAAA,KAAK,GAAG,wBAAMQ,KAAN,EAAa;AAAEI,UAAAA,cAAc,EAAEH;AAAlB,SAAb,EAAwCP,QAAxC,CAAR;AACA,OAHD,MAKA;AACCF,QAAAA,KAAK,GAAG,EAAR;AACA;AACD,KAzBD,CA0BA;AACA;AACA;AA5BA,SA8BA;AACC,YAAIU,KAAJ,EACA;AACCT,UAAAA,OAAO,GAAGQ,KAAV;AACAP,UAAAA,QAAQ,GAAGQ,KAAX;AACA,SAJD,MAMA;AACCR,UAAAA,QAAQ,GAAGO,KAAX;AACA,SATF,CAWC;AACA;AACA;AACA;AACA;;;AACA,YAAI,qCAAoBD,KAApB,CAAJ,EACA;AACCR,UAAAA,KAAK,GAAG,wBAAMQ,KAAN,EAAaK,SAAb,EAAwBX,QAAxB,CAAR;AACA,SAHD,MAKA;AACCF,UAAAA,KAAK,GAAG,EAAR;AACA;AACD;AACD,GA5DD,CA6DA;AACA;AA9DA,OA+DK,IAAIc,SAAS,CAACN,KAAD,CAAb,EACL;AACCR,MAAAA,KAAK,GAAGQ,KAAR;;AAEA,UAAIE,KAAJ,EACA;AACCT,QAAAA,OAAO,GAAGQ,KAAV;AACAP,QAAAA,QAAQ,GAAGQ,KAAX;AACA,OAJD,MAMA;AACCR,QAAAA,QAAQ,GAAGO,KAAX;AACA;AACD,KAbI,MAcA,MAAM,IAAIM,SAAJ,CAAc,oFAAd,CAAN;;AAEL,SAAO;AACNf,IAAAA,KAAK,EAALA,KADM;AAENC,IAAAA,OAAO,EAAPA,OAFM;AAGNC,IAAAA,QAAQ,EAARA;AAHM,GAAP;AAKA,C,CAED;AACA;;AACA;;;AACA,IAAMY,SAAS,GAAG,SAAZA,SAAY,CAAAE,CAAC;AAAA,SAAI,QAAOA,CAAP,MAAa,QAAjB;AAAA,CAAnB","sourcesContent":["import isViablePhoneNumber from './helpers/isViablePhoneNumber'\r\nimport _getNumberType from './helpers/getNumberType'\r\nimport parse from './parse_'\r\n\r\n// Finds out national phone number type (fixed line, mobile, etc)\r\nexport default function getNumberType()\r\n{\r\n\tconst { input, options, metadata } = normalizeArguments(arguments)\r\n\treturn _getNumberType(input, options, metadata)\r\n}\r\n\r\n// Sort out arguments\r\nexport function normalizeArguments(args)\r\n{\r\n\tconst [arg_1, arg_2, arg_3, arg_4] = Array.prototype.slice.call(args)\r\n\r\n\tlet input\r\n\tlet options = {}\r\n\tlet metadata\r\n\r\n\t// If the phone number is passed as a string.\r\n\t// `getNumberType('88005553535', ...)`.\r\n\tif (typeof arg_1 === 'string')\r\n\t{\r\n\t\t// If \"default country\" argument is being passed\r\n\t\t// then convert it to an `options` object.\r\n\t\t// `getNumberType('88005553535', 'RU', metadata)`.\r\n\t\tif (typeof arg_2 !== 'object')\r\n\t\t{\r\n\t\t\tif (arg_4)\r\n\t\t\t{\r\n\t\t\t\toptions = arg_3\r\n\t\t\t\tmetadata = arg_4\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tmetadata = arg_3\r\n\t\t\t}\r\n\r\n\t\t\t// `parse` extracts phone numbers from raw text,\r\n\t\t\t// therefore it will cut off all \"garbage\" characters,\r\n\t\t\t// while this `validate` function needs to verify\r\n\t\t\t// that the phone number contains no \"garbage\"\r\n\t\t\t// therefore the explicit `isViablePhoneNumber` check.\r\n\t\t\tif (isViablePhoneNumber(arg_1))\r\n\t\t\t{\r\n\t\t\t\tinput = parse(arg_1, { defaultCountry: arg_2 }, metadata)\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tinput = {}\r\n\t\t\t}\r\n\t\t}\r\n\t\t// No \"resrict country\" argument is being passed.\r\n\t\t// International phone number is passed.\r\n\t\t// `getNumberType('+78005553535', metadata)`.\r\n\t\telse\r\n\t\t{\r\n\t\t\tif (arg_3)\r\n\t\t\t{\r\n\t\t\t\toptions = arg_2\r\n\t\t\t\tmetadata = arg_3\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tmetadata = arg_2\r\n\t\t\t}\r\n\r\n\t\t\t// `parse` extracts phone numbers from raw text,\r\n\t\t\t// therefore it will cut off all \"garbage\" characters,\r\n\t\t\t// while this `validate` function needs to verify\r\n\t\t\t// that the phone number contains no \"garbage\"\r\n\t\t\t// therefore the explicit `isViablePhoneNumber` check.\r\n\t\t\tif (isViablePhoneNumber(arg_1))\r\n\t\t\t{\r\n\t\t\t\tinput = parse(arg_1, undefined, metadata)\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tinput = {}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\t// If the phone number is passed as a parsed phone number.\r\n\t// `getNumberType({ phone: '88005553535', country: 'RU' }, ...)`.\r\n\telse if (is_object(arg_1))\r\n\t{\r\n\t\tinput = arg_1\r\n\r\n\t\tif (arg_3)\r\n\t\t{\r\n\t\t\toptions = arg_2\r\n\t\t\tmetadata = arg_3\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tmetadata = arg_2\r\n\t\t}\r\n\t}\r\n\telse throw new TypeError('A phone number must either be a string or an object of shape { phone, [country] }.')\r\n\r\n\treturn {\r\n\t\tinput,\r\n\t\toptions,\r\n\t\tmetadata\r\n\t}\r\n}\r\n\r\n// Babel transforms `typeof` into some \"branches\"\r\n// so istanbul will show this as \"branch not covered\".\r\n/* istanbul ignore next */\r\nconst is_object = _ => typeof _ === 'object'"],"file":"getNumberType.js"}
\No newline at end of file