{"id":19921857,"url":"https://github.com/dhershman1/phone-fns","last_synced_at":"2025-05-03T07:30:31.444Z","repository":{"id":56222346,"uuid":"108922731","full_name":"dhershman1/phone-fns","owner":"dhershman1","description":"A small modern, and functional phone number library","archived":false,"fork":false,"pushed_at":"2024-10-25T00:49:40.000Z","size":1138,"stargazers_count":16,"open_issues_count":5,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-15T14:51:15.816Z","etag":null,"topics":["fns","formatting","functional","phone-fns","phone-number"],"latest_commit_sha":null,"homepage":"https://phone-fns.dusty.codes/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dhershman1.png","metadata":{"files":{"readme":"README.md","changelog":"changelog.md","contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-10-31T00:13:08.000Z","updated_at":"2025-04-09T10:12:18.000Z","dependencies_parsed_at":"2024-06-19T16:24:00.005Z","dependency_job_id":"f0475d85-93d1-4d55-a02f-fab9c59c3ac1","html_url":"https://github.com/dhershman1/phone-fns","commit_stats":{"total_commits":164,"total_committers":3,"mean_commits":"54.666666666666664","dds":"0.27439024390243905","last_synced_commit":"235eb6b0e6f259eb0e19bb4b3dd4ffd450b29a04"},"previous_names":[],"tags_count":19,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dhershman1%2Fphone-fns","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dhershman1%2Fphone-fns/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dhershman1%2Fphone-fns/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dhershman1%2Fphone-fns/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dhershman1","download_url":"https://codeload.github.com/dhershman1/phone-fns/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252156692,"owners_count":21703327,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["fns","formatting","functional","phone-fns","phone-number"],"created_at":"2024-11-12T22:08:38.976Z","updated_at":"2025-05-03T07:30:31.014Z","avatar_url":"https://github.com/dhershman1.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=center\u003e\r\n  \u003ca href=\"./LICENSE\"\u003e\r\n    \u003cimg\r\n      alt=\"license:mit\"\r\n      src=\"https://img.shields.io/badge/license-mit-green.svg?style=flat-square\u0026color=%23bef9c6\"\r\n    /\u003e\r\n  \u003c/a\u003e\r\n  \u003ca href=\"https://phone-fns.dusty.codes/\"\u003e\r\n    \u003cimg alt=\"Netlify Status\" src=\"https://api.netlify.com/api/v1/badges/9a96c817-73dc-40c9-b052-c855397cf2c1/deploy-status\"\u003e\r\n  \u003c/a\u003e\r\n  \u003ca href=\"https://www.npmjs.com/package/phone-fns\"\u003e\r\n    \u003cimg alt=\"Npm Version\" src=\"https://img.shields.io/npm/v/phone-fns.svg?style=flat-square\u0026color=%23bef9c6\"\u003e\r\n  \u003c/a\u003e\r\n  \u003ca href=\"https://github.com/dhershman1/kyanite/actions/workflows/kyanite.yml\"\u003e\r\n    \u003cimg alt=\"Build Status\" src=\"https://img.shields.io/github/actions/workflow/status/dhershman1/phone-fns/phone-fns.yml?style=flat-square\u0026logo=github\"\u003e\r\n  \u003c/a\u003e\r\n  \u003ca href=\"https://codebeat.co/projects/github-com-dhershman1-phone-fns-master\"\u003e\r\n    \u003cimg alt=\"codebeat badge\" src=\"https://codebeat.co/badges/09e3c0c1-154a-43f4-a9a0-e53d7016c2b9\" /\u003e\r\n  \u003c/a\u003e\r\n  \u003ca href=\"https://codecov.io/gh/dhershman1/phone-fns\" \u003e\r\n    \u003cimg src=\"https://codecov.io/gh/dhershman1/phone-fns/graph/badge.svg?token=69ajvCO9U2\"/\u003e\r\n  \u003c/a\u003e\r\n\u003c/p\u003e\r\n\r\n# Phone Fns\r\n\r\nA small modern, and functional phone number library which gathers inspiration from the fun [date-fns](https://github.com/date-fns/date-fns) library\r\n\r\n\r\n- [Documentation](https://phone-fns.dusty.codes/)\r\n\r\n## How-To\r\n\r\n```cli\r\nnpm i phone-fns\r\n```\r\n\r\nStandard module system\r\n\r\n```js\r\nimport * as phoneFns from 'phone-fns'\r\n\r\nphoneFns.uglify('555-444-3333') // =\u003e '5554443333'\r\n```\r\n\r\nCommon JS\r\n\r\n```js\r\nconst phoneFns = require('phone-fns')\r\n\r\nphoneFns.uglify('555-444-3333') // =\u003e '5554443333'\r\n```\r\n\r\nUsing Unpkg or jsdelivr CDN (As of v4.0.0+)\r\n\r\n```html\r\n\u003cscript src=\"https://cdn.jsdelivr.net/npm/phone-fns@4.0.0/dist/phone-fns.iife.min.js\"\u003e\u003c/script\u003e\r\n\u003cscript\u003e\r\n  phoneFns.uglify('555-444-3333') // =\u003e '5554443333'\r\n\u003c/script\u003e\r\n```\r\n\r\n\r\nThrough the browser\r\n\r\n```html\r\n\u003cscript src=\"path/to/location/dist/phone-fns.iife.min.js\"\u003e\u003c/script\u003e\r\n\u003cscript\u003e\r\n  phoneFns.uglify('555-444-3333') // =\u003e '5554443333'\r\n\u003c/script\u003e\r\n```\r\n\r\n## Usage\r\n\r\n```javascript\r\nimport * as phoneFns from 'phone-fns'\r\n\r\nphoneFns.breakdown('4443332222')\r\n// =\u003e { areaCode: '444', localCode: '333', lineNumber: '2222', extension: '' }\r\n\r\nphoneFns.format('(NNN) NNN-NNNN', '4443332222')\r\n// =\u003e '(444) 333-2222'\r\n```\r\n\r\nYou can also destructure to only use the functions you want\r\n\r\n```javascript\r\nimport { breakdown, format } from 'phone-fns'\r\n\r\nbreakdown('4443332222')\r\n// =\u003e { areaCode: '444', localCode: '333', lineNumber: '2222', extension: '' }\r\n\r\nformat('(NNN) NNN-NNNN', '4443332222')\r\n// =\u003e '(444) 333-2222'\r\n```\r\n\r\n## Placeholder Support\r\n\r\nPhone-Fns as of v3.2.0 now supports placeholder syntax using Underscores `_`\r\n\r\n```js\r\nconst fn = format('NNN-NNN-NNNN')\r\n\r\nfn('__________') // =\u003e '___-___-____'\r\nfn('444_______') // =\u003e '444-___-____'\r\nfn('444555____') // =\u003e '444-555-____'\r\nfn('4445556666') // =\u003e '444-555-6666'\r\nformat('NNN-NNN-NNNN x NNNN', '5554443333____') // =\u003e '555-444-3333 x ____'\r\n```\r\n\r\nThis will only work with underscores or other characters not picked up by the Regex `\\W` type.\r\n\r\nJust call format as the phone number updates in order to get back the newly updated string. Useful for using it with a input mask setup\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdhershman1%2Fphone-fns","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdhershman1%2Fphone-fns","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdhershman1%2Fphone-fns/lists"}