Registry / serialization / awesome-phonenumber

awesome-phonenumber

JSON →
library7.8.0jsnpmunverified

A pre-compiled version of Google's libphonenumber that provides phone number parsing, validation, and formatting with a simplified API. Currently at version 7.8.0, tracking libphonenumber 9.0.24. Releases follow upstream libphonenumber updates roughly monthly. Key differentiators: minimal footprint (bundled, no closure compiler dependency), zero runtime dependencies, ships both ESM and CJS, TypeScript types included, and unique findNumbers() feature not present in libphonenumber. Faster load and parse times compared to google-libphonenumber and libphonenumber-js. Supports Node >=18.

npm install awesome-phonenumber
INSTALL
IMPORT
SIG · AWESOME-PHONENUMBE
A
awesome-phonenumber
serializationjavascriptv7.8.0
harness data pending
Install & Compatibility
Where this runs

No compatibility data collected yet for this library.

Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

parsePhoneNumber
import { parsePhoneNumber } from 'awesome-phonenumber'
import parsePhoneNumber from 'awesome-phonenumber'
Named export in both ESM and CJS; do not use default import.
getNumberFrom
import { getNumberFrom } from 'awesome-phonenumber'
const getNumberFrom = require('awesome-phonenumber').getNumberFrom
ESM-style import works; require() also works but note that the entire module is pre-compiled.
findNumbers
import { findNumbers } from 'awesome-phonenumber'
import { findNumbers as find } from 'awesome-phonenumber'
Available since v7.0.0; also a named export.
PhoneNumber
import type { PhoneNumber } from 'awesome-phonenumber'
TypeScript users should use type import for interface.

Demonstrates parsing phone numbers with region code, E164 format, and extracting numbers from text using findNumbers().

import { parsePhoneNumber, findNumbers } from 'awesome-phonenumber'; // Parse a phone number with region code const pn = parsePhoneNumber('0707123456', { regionCode: 'SE' }); console.log(pn.valid); // true console.log(pn.number?.e164); // +46707123456 console.log(pn.number?.international); // +46 70 712 34 56 console.log(pn.number?.national); // 070-712 34 56 // Parse an E164 number const pn2 = parsePhoneNumber('+46707123456'); console.log(pn2.valid); // true // Find phone numbers in text const text = 'Call me at +1 555-123-4567 or +46 70 712 34 56'; const found = findNumbers(text); console.log(found.length); // 2 found.forEach(f => { console.log(f.phoneNumber.number?.e164); });
Debug
Known issues
breakingv7.0.0 changed parsePhoneNumber second argument from string to object
fix
Use { regionCode: 'SE' } instead of 'SE' as second argument.
affects: >=7.0.0
breakingv6.0.0 dropped Node 16 support
fix
Upgrade to Node >=18.
affects: >=6.0.0
breakingv5.0.0 dropped Node 12 support
fix
Upgrade to Node >=14 (v6 requires >=18).
affects: >=5.0.0
deprecatedv4.0.0 removed constructor-based API (new PhoneNumber())
fix
Use parsePhoneNumber() function instead.
affects: >=4.0.0
gotchaparsePhoneNumber returns an object with nullable fields; always check .valid before accessing .number
fix
if (pn.valid) { console.log(pn.number.e164); }
affects: >=4.0.0
gotchaNode >=18 required; no mention of browser support but library works in webpack/bundlers
fix
Ensure Node >=18 for server-side, or bundle with webpack/etc for browser.
affects: >=6.0.0
Errors
Common errors & fixes
TypeError: parsePhoneNumber is not a function
Default import used instead of named import
fix
Use `import { parsePhoneNumber } from 'awesome-phonenumber'`
Error: Invalid region code
Passed string as second argument in v7+ instead of object
fix
Use `{ regionCode: 'SE' }` instead of `'SE'`
Type error: Property 'number' does not exist on type 'PhoneNumber'
Attempted to access .number without checking .valid first
fix
Check `pn.valid` before accessing `pn.number`
Cannot find module 'awesome-phonenumber'
Package not installed or wrong import path
fix
Run `npm install awesome-phonenumber` and import correctly
Upgrade
Version history
7.8.0latest on npm
Audit
Dependencies

No dependency data recorded yet.

Agent activity
20 hits · last 30 days
node
18
OpenAI (training)
1
Resources
awesome-phonenumber — npm install awesome-phonenumber · libregistry