feat(formatter): implement format phone number transformer

This commit is contained in:
Faruk AYDIN
2023-10-17 16:45:56 +02:00
parent 648511dfad
commit cabf9b8fb8
7 changed files with 320 additions and 0 deletions

View File

@@ -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',

View File

@@ -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;