From 3a5723d3d49a05a6abab1843b397e7afa1d4c317 Mon Sep 17 00:00:00 2001 From: Faruk AYDIN Date: Fri, 1 Sep 2023 13:35:25 +0200 Subject: [PATCH] feat(formatter): Add trim whitespace transformer to text action --- .../backend/src/apps/formatter/actions/text/index.ts | 3 +++ .../actions/text/transformers/trim-whitespace.ts | 8 ++++++++ .../dynamic-fields/list-transform-options/index.ts | 2 ++ .../options/trim-whitespace.ts | 12 ++++++++++++ 4 files changed, 25 insertions(+) create mode 100644 packages/backend/src/apps/formatter/actions/text/transformers/trim-whitespace.ts create mode 100644 packages/backend/src/apps/formatter/dynamic-fields/list-transform-options/options/trim-whitespace.ts diff --git a/packages/backend/src/apps/formatter/actions/text/index.ts b/packages/backend/src/apps/formatter/actions/text/index.ts index fe1d053f70..6c067d0271 100644 --- a/packages/backend/src/apps/formatter/actions/text/index.ts +++ b/packages/backend/src/apps/formatter/actions/text/index.ts @@ -7,6 +7,7 @@ import extractEmailAddress from './transformers/extract-email-address'; import extractNumber from './transformers/extract-number'; import lowercase from './transformers/lowercase'; import pluralize from './transformers/pluralize'; +import trimWhitespace from './transformers/trim-whitespace'; const transformers = { capitalize, @@ -17,6 +18,7 @@ const transformers = { extractNumber, lowercase, pluralize, + trimWhitespace, }; export default defineAction({ @@ -41,6 +43,7 @@ export default defineAction({ { label: 'Extract Number', value: 'extractNumber' }, { label: 'Lowercase', value: 'lowercase' }, { label: 'Pluralize', value: 'pluralize' }, + { label: 'Trim Whitespace', value: 'trimWhitespace' }, ], additionalFields: { type: 'query', diff --git a/packages/backend/src/apps/formatter/actions/text/transformers/trim-whitespace.ts b/packages/backend/src/apps/formatter/actions/text/transformers/trim-whitespace.ts new file mode 100644 index 0000000000..71b69835f4 --- /dev/null +++ b/packages/backend/src/apps/formatter/actions/text/transformers/trim-whitespace.ts @@ -0,0 +1,8 @@ +import { IGlobalVariable } from '@automatisch/types'; + +const trimWhitespace = ($: IGlobalVariable) => { + const input = $.step.parameters.input as string; + return input.trim(); +}; + +export default trimWhitespace; diff --git a/packages/backend/src/apps/formatter/dynamic-fields/list-transform-options/index.ts b/packages/backend/src/apps/formatter/dynamic-fields/list-transform-options/index.ts index b4f227512a..2359fa5aa3 100644 --- a/packages/backend/src/apps/formatter/dynamic-fields/list-transform-options/index.ts +++ b/packages/backend/src/apps/formatter/dynamic-fields/list-transform-options/index.ts @@ -7,6 +7,7 @@ import extractEmailAddress from './options/extract-email-address'; import extractNumber from './options/extract-number'; import lowercase from './options/lowercase'; import pluralize from './options/pluralize'; +import trimWhitespace from './options/trim-whitespace'; const options: IJSONObject = { capitalize, @@ -17,6 +18,7 @@ const options: IJSONObject = { extractNumber, lowercase, pluralize, + trimWhitespace, }; export default { diff --git a/packages/backend/src/apps/formatter/dynamic-fields/list-transform-options/options/trim-whitespace.ts b/packages/backend/src/apps/formatter/dynamic-fields/list-transform-options/options/trim-whitespace.ts new file mode 100644 index 0000000000..3967320b19 --- /dev/null +++ b/packages/backend/src/apps/formatter/dynamic-fields/list-transform-options/options/trim-whitespace.ts @@ -0,0 +1,12 @@ +const trimWhitespace = [ + { + label: 'Input', + key: 'input', + type: 'string' as const, + required: true, + description: 'Text you want to remove leading and trailing spaces.', + variables: true, + }, +]; + +export default trimWhitespace;