Skip to content

Latest commit

 

History

History

phone

@type-ddd/phone

The @type-ddd/phone library provides TypeScript type definitions for handling phone (Brazilian) in Domain-Driven Design contexts. It facilitates the validation and manipulation of phone numbers, ensuring they adhere to the Brazilian legal standards.


Installation

Install rich-domain and @type-ddd/phone with your favorite package manager

npm i rich-domain @type-ddd/phone

# OR

yarn add rich-domain @type-ddd/phone

Usage

Don't worry about removing special characters; they are automatically stripped from all instances.

import { Phone } from '@type-ddd/phone'

// Instance of phone or throws an error if provide an invalid value
const phone = Phone.init('11994882021');

// OR

// Result of phone (Check Result pattern docs)
const result = Phone.create('11994882021');

result.isOk(); // true

// phone instance or null if provide an invalid value
const phone = result.value();

Check phone type

Method to verify instance type.

// value as string 
const isMobile = Phone.isMobile('11994882021');
// Output: true

// OR

// value as string 
const isMobile = Phone.isHome('11994882021');
// Output: false

Special Chars

Don't worry about removing special characters; they are automatically stripped from all instances.

const result = Phone.isValid('(11) 99488-2021');
// Output: true

Special chars

If you need the value with the mask, you can use the toPattern method:

phone.toPattern();

// Output: '(11) 99488-2021'

Or if you need to apply mask from a string value you may use addMask method

Phone.addMask('11994882021');

// Output: (11) 99488-2021

Or if you need to remove mask from a string value you may use removeSpecialChars method

Phone.removeSpecialChars('(11) 99488-2021');

// Output: 11994882021

If you need to identify uf from a phone number

const phone = Phone.init('(11) 99488-2021');

phone.uf();
// Output: "São Paulo"

phone.code();
// 11

phone.number();
// 994882021

phone.toCall();
// 011994882021