feat(formatter): implement format phone number transformer
This commit is contained in:
@@ -3,11 +3,13 @@ import defineAction from '../../../../helpers/define-action';
|
||||
import performMathOperation from './transformers/perform-math-operation';
|
||||
import randomNumber from './transformers/random-number';
|
||||
import formatNumber from './transformers/format-number';
|
||||
import formatPhoneNumber from './transformers/format-phone-number';
|
||||
|
||||
const transformers = {
|
||||
performMathOperation,
|
||||
randomNumber,
|
||||
formatNumber,
|
||||
formatPhoneNumber,
|
||||
};
|
||||
|
||||
export default defineAction({
|
||||
@@ -26,6 +28,7 @@ export default defineAction({
|
||||
{ label: 'Perform Math Operation', value: 'performMathOperation' },
|
||||
{ label: 'Random Number', value: 'randomNumber' },
|
||||
{ label: 'Format Number', value: 'formatNumber' },
|
||||
{ label: 'Format Phone Number', value: 'formatPhoneNumber' },
|
||||
],
|
||||
additionalFields: {
|
||||
type: 'query',
|
||||
|
@@ -0,0 +1,24 @@
|
||||
import { IGlobalVariable } from '@automatisch/types';
|
||||
import parsePhoneNumber, { CountryCode } from 'libphonenumber-js';
|
||||
|
||||
const formatPhoneNumber = ($: IGlobalVariable) => {
|
||||
const phoneNumber = $.step.parameters.phoneNumber as string;
|
||||
const toFormat = $.step.parameters.toFormat as string;
|
||||
const phoneNumberCountryCode = ($.step.parameters.phoneNumberCountryCode ||
|
||||
'US') as CountryCode;
|
||||
|
||||
const parsedPhoneNumber = parsePhoneNumber(
|
||||
phoneNumber,
|
||||
phoneNumberCountryCode
|
||||
);
|
||||
|
||||
if (toFormat === 'e164') {
|
||||
return parsedPhoneNumber.format('E.164');
|
||||
} else if (toFormat === 'international') {
|
||||
return parsedPhoneNumber.formatInternational();
|
||||
} else if (toFormat === 'national') {
|
||||
return parsedPhoneNumber.formatNational();
|
||||
}
|
||||
};
|
||||
|
||||
export default formatPhoneNumber;
|
Reference in New Issue
Block a user