Back | Home
الـ Path الحالي: /home/picotech/domains/instantly.picotech.app/public_html/public/uploads/../uploads/../../../../instantly.picotech.app/homes/../../wa.picotech.app/public_html/node_modules/path-exists/../duplexify/./.././debug/../domutils/../cheerio/../negotiator/../wrappy/../url/../parse5/../bytes/../.bin/../@tokenizer/../express/../domutils/../libphonenumber-js/source/.
الملفات الموجودة في هذا الـ Path:
.
..
AsYouType.js
AsYouType.test.js
AsYouTypeFormatter.PatternMatcher.d.ts
AsYouTypeFormatter.PatternMatcher.js
AsYouTypeFormatter.PatternMatcher.test.js
AsYouTypeFormatter.PatternParser.d.ts
AsYouTypeFormatter.PatternParser.js
AsYouTypeFormatter.PatternParser.test.js
AsYouTypeFormatter.complete.js
AsYouTypeFormatter.js
AsYouTypeFormatter.util.js
AsYouTypeFormatter.util.test.js
AsYouTypeParser.js
AsYouTypeState.js
ParseError.js
PhoneNumber.js
PhoneNumber.test.js
PhoneNumberMatcher.js
PhoneNumberMatcher.test.js
constants.js
findNumbers
findPhoneNumbersInText.js
findPhoneNumbersInText.test.js
format.js
format.test.js
formatIncompletePhoneNumber.js
formatIncompletePhoneNumber.test.js
formatPhoneNumberForMobileDialing.js
formatPhoneNumberForMobileDialing.test.js
getCountries.js
getCountries.test.js
getCountryCallingCode.js
getCountryCallingCode.test.js
getExampleNumber.js
getExampleNumber.test.js
helpers
isPossible.js
isPossible.test.js
isPossiblePhoneNumber.js
isPossiblePhoneNumber.test.js
isValid.js
isValid.test.js
isValidPhoneNumber.js
isValidPhoneNumber.test.js
legacy
metadata.js
metadata.test.js
normalizeArguments.js
parse.js
parse.test.js
parseIncompletePhoneNumber.js
parseIncompletePhoneNumber.test.js
parsePhoneNumber.js
parsePhoneNumber.test.js
parsePhoneNumberWithError.js
parsePhoneNumberWithError.test.js
parsePhoneNumberWithError_.js
parsePhoneNumber_.js
searchPhoneNumbersInText.js
searchPhoneNumbersInText.test.js
tools
validatePhoneNumberLength.js
validatePhoneNumberLength.test.js
مشاهدة ملف: format.test.js
import metadata from '../metadata.min.json' assert { type: 'json' }
import formatNumber_ from './format.js'
import parsePhoneNumber from './parsePhoneNumber.js'
function formatNumber(...parameters) {
let v2
if (parameters.length < 1) {
// `input` parameter.
parameters.push(undefined)
} else {
// Convert string `input` to a `PhoneNumber` instance.
if (typeof parameters[0] === 'string') {
v2 = true
parameters[0] = parsePhoneNumber(parameters[0], {
...parameters[2],
extract: false
}, metadata)
}
}
if (parameters.length < 2) {
// `format` parameter.
parameters.push(undefined)
}
if (parameters.length < 3) {
// `options` parameter.
parameters.push(undefined)
}
// Set `v2` flag.
parameters[2] = {
v2,
...parameters[2]
}
// Add `metadata` parameter.
parameters.push(metadata)
// Call the function.
return formatNumber_.apply(this, parameters)
}
describe('format', () => {
it('should work with the first argument being a E.164 number', () => {
formatNumber('+12133734253', 'NATIONAL').should.equal('(213) 373-4253')
formatNumber('+12133734253', 'INTERNATIONAL').should.equal('+1 213 373 4253')
// Invalid number.
formatNumber('+12111111111', 'NATIONAL').should.equal('(211) 111-1111')
// Formatting invalid E.164 numbers.
formatNumber('+11111', 'INTERNATIONAL').should.equal('+1 1111')
formatNumber('+11111', 'NATIONAL').should.equal('1111')
})
it('should work with the first object argument expanded', () => {
formatNumber('2133734253', 'NATIONAL', { defaultCountry: 'US' }).should.equal('(213) 373-4253')
formatNumber('2133734253', 'INTERNATIONAL', { defaultCountry: 'US' }).should.equal('+1 213 373 4253')
})
it('should format using formats with no leading digits (`format.leadingDigitsPatterns().length === 0`)', () => {
formatNumber({ phone: '12345678901', countryCallingCode: 888 }, 'INTERNATIONAL').should.equal('+888 123 456 78901')
})
it('should sort out the arguments', () => {
const options = {
formatExtension: (number, extension) => `${number} доб. ${extension}`
}
formatNumber({
phone : '8005553535',
country : 'RU',
ext : '123'
},
'NATIONAL', options).should.equal('8 (800) 555-35-35 доб. 123')
// Parse number from string.
formatNumber('+78005553535', 'NATIONAL', options).should.equal('8 (800) 555-35-35')
formatNumber('8005553535', 'NATIONAL', { ...options, defaultCountry: 'RU' }).should.equal('8 (800) 555-35-35')
})
it('should format with national prefix when specifically instructed', () => {
// With national prefix.
formatNumber('88005553535', 'NATIONAL', { defaultCountry: 'RU' }).should.equal('8 (800) 555-35-35')
// Without national prefix via an explicitly set option.
formatNumber('88005553535', 'NATIONAL', { nationalPrefix: false, defaultCountry: 'RU' }).should.equal('800 555-35-35')
})
it('should format valid phone numbers', () => {
// Switzerland
formatNumber({ country: 'CH', phone: '446681800' }, 'INTERNATIONAL').should.equal('+41 44 668 18 00')
formatNumber({ country: 'CH', phone: '446681800' }, 'E.164').should.equal('+41446681800')
formatNumber({ country: 'CH', phone: '446681800' }, 'RFC3966').should.equal('tel:+41446681800')
formatNumber({ country: 'CH', phone: '446681800' }, 'NATIONAL').should.equal('044 668 18 00')
// France
formatNumber({ country: 'FR', phone: '169454850' }, 'NATIONAL').should.equal('01 69 45 48 50')
// Kazakhstan
formatNumber('+7 702 211 1111', 'NATIONAL').should.deep.equal('8 (702) 211 1111')
})
it('should format national numbers with national prefix even if it\'s optional', () => {
// Russia
formatNumber({ country: 'RU', phone: '9991234567' }, 'NATIONAL').should.equal('8 (999) 123-45-67')
})
it('should work in edge cases', () => {
let thrower
// // No phone number
// formatNumber('', 'INTERNATIONAL', { defaultCountry: 'RU' }).should.equal('')
// formatNumber('', 'NATIONAL', { defaultCountry: 'RU' }).should.equal('')
formatNumber({ country: 'RU', phone: '' }, 'INTERNATIONAL').should.equal('+7')
formatNumber({ country: 'RU', phone: '' }, 'NATIONAL').should.equal('')
// No suitable format
formatNumber('+121337342530', 'NATIONAL', { defaultCountry: 'US' }).should.equal('21337342530')
// No suitable format (leading digits mismatch)
formatNumber('28199999', 'NATIONAL', { defaultCountry: 'AD' }).should.equal('28199999')
// // Numerical `value`
// thrower = () => formatNumber(89150000000, 'NATIONAL', { defaultCountry: 'RU' })
// thrower.should.throw('A phone number must either be a string or an object of shape { phone, [country] }.')
// // No metadata for country
// expect(() => formatNumber('+121337342530', 'NATIONAL', { defaultCountry: 'USA' })).to.throw('Unknown country')
// expect(() => formatNumber('21337342530', 'NATIONAL', { defaultCountry: 'USA' })).to.throw('Unknown country')
// No format type
thrower = () => formatNumber('+123')
thrower.should.throw('Unknown "format" argument')
// Unknown format type
thrower = () => formatNumber('123', 'Gay', { defaultCountry: 'US' })
thrower.should.throw('Unknown "format" argument')
// // No metadata
// thrower = () => _formatNumber('123', 'E.164', { defaultCountry: 'RU' })
// thrower.should.throw('`metadata`')
// No formats
formatNumber('012345', 'NATIONAL', { defaultCountry: 'AC' }).should.equal('012345')
// No `fromCountry` for `IDD` format.
expect(formatNumber('+78005553535', 'IDD')).to.be.undefined
// `fromCountry` has no default IDD prefix.
expect(formatNumber('+78005553535', 'IDD', { fromCountry: 'BO' })).to.be.undefined
// No such country.
expect(() => formatNumber({ phone: '123', country: 'USA' }, 'NATIONAL')).to.throw('Unknown country')
})
it('should format phone number extensions', () => {
// National
formatNumber({
country: 'US',
phone: '2133734253',
ext: '123'
},
'NATIONAL').should.equal('(213) 373-4253 ext. 123')
// International
formatNumber({
country : 'US',
phone : '2133734253',
ext : '123'
},
'INTERNATIONAL').should.equal('+1 213 373 4253 ext. 123')
// International
formatNumber({
country : 'US',
phone : '2133734253',
ext : '123'
},
'INTERNATIONAL').should.equal('+1 213 373 4253 ext. 123')
// E.164
formatNumber({
country : 'US',
phone : '2133734253',
ext : '123'
},
'E.164').should.equal('+12133734253')
// RFC3966
formatNumber({
country : 'US',
phone : '2133734253',
ext : '123'
},
'RFC3966').should.equal('tel:+12133734253;ext=123')
// Custom ext prefix.
formatNumber({
country : 'GB',
phone : '7912345678',
ext : '123'
},
'INTERNATIONAL').should.equal('+44 7912 345678 x123')
})
it('should work with Argentina numbers', () => {
// The same mobile number is written differently
// in different formats in Argentina:
// `9` gets prepended in international format.
formatNumber({ country: 'AR', phone: '3435551212' }, 'INTERNATIONAL')
.should.equal('+54 3435 55 1212')
formatNumber({ country: 'AR', phone: '3435551212' }, 'NATIONAL')
.should.equal('03435 55-1212')
})
it('should work with Mexico numbers', () => {
// Fixed line.
formatNumber({ country: 'MX', phone: '4499780001' }, 'INTERNATIONAL')
.should.equal('+52 449 978 0001')
formatNumber({ country: 'MX', phone: '4499780001' }, 'NATIONAL')
.should.equal('449 978 0001')
// or '(449)978-0001'.
// Mobile.
// `1` is prepended before area code to mobile numbers in international format.
formatNumber({ country: 'MX', phone: '3312345678' }, 'INTERNATIONAL')
.should.equal('+52 33 1234 5678')
formatNumber({ country: 'MX', phone: '3312345678' }, 'NATIONAL')
.should.equal('33 1234 5678')
// or '045 33 1234-5678'.
})
it('should format possible numbers', () => {
formatNumber({ countryCallingCode: '7', phone: '1111111111' }, 'E.164')
.should.equal('+71111111111')
formatNumber({ countryCallingCode: '7', phone: '1111111111' }, 'NATIONAL')
.should.equal('1111111111')
formatNumber({ countryCallingCode: '7', phone: '1111111111' }, 'INTERNATIONAL')
.should.equal('+7 1111111111')
})
it('should format IDD-prefixed number', () => {
// No `fromCountry`.
expect(formatNumber('+78005553535', 'IDD')).to.be.undefined
// No default IDD prefix.
expect(formatNumber('+78005553535', 'IDD', { fromCountry: 'BO' })).to.be.undefined
// Same country calling code.
formatNumber('+12133734253', 'IDD', { fromCountry: 'CA', humanReadable: true }).should.equal('1 (213) 373-4253')
formatNumber('+78005553535', 'IDD', { fromCountry: 'KZ', humanReadable: true }).should.equal('8 (800) 555-35-35')
// formatNumber('+78005553535', 'IDD', { fromCountry: 'US' }).should.equal('01178005553535')
formatNumber('+78005553535', 'IDD', { fromCountry: 'US', humanReadable: true }).should.equal('011 7 800 555 35 35')
})
it('should format non-geographic numbering plan phone numbers', () => {
// https://github.com/catamphetamine/libphonenumber-js/issues/323
formatNumber('+870773111632', 'INTERNATIONAL').should.equal('+870 773 111 632')
formatNumber('+870773111632', 'NATIONAL').should.equal('773 111 632')
})
it('should use the default IDD prefix when formatting a phone number', () => {
// Testing preferred international prefixes with ~ are supported.
// ("~" designates waiting on a line until proceeding with the input).
formatNumber('+390236618300', 'IDD', { fromCountry: 'UZ' }).should.equal('8~10 39 02 3661 8300')
})
})