From ab4abd590ac57de6997937b5e8b52531e34fa67c Mon Sep 17 00:00:00 2001 From: Ali BARIN Date: Fri, 16 Aug 2024 14:08:00 +0000 Subject: [PATCH] feat(formatter/text): stringify json transformer --- .../backend/src/apps/formatter/actions/text/index.js | 3 +++ .../actions/text/transformers/stringify-json.js | 7 +++++++ .../dynamic-fields/list-transform-options/index.js | 2 ++ .../text/parse-stringified-json.js | 4 ++-- .../list-transform-options/text/stringify-json.js | 12 ++++++++++++ 5 files changed, 26 insertions(+), 2 deletions(-) create mode 100644 packages/backend/src/apps/formatter/actions/text/transformers/stringify-json.js create mode 100644 packages/backend/src/apps/formatter/dynamic-fields/list-transform-options/text/stringify-json.js diff --git a/packages/backend/src/apps/formatter/actions/text/index.js b/packages/backend/src/apps/formatter/actions/text/index.js index e33160ad..b290bc47 100644 --- a/packages/backend/src/apps/formatter/actions/text/index.js +++ b/packages/backend/src/apps/formatter/actions/text/index.js @@ -16,6 +16,7 @@ import trimWhitespace from './transformers/trim-whitespace.js'; import useDefaultValue from './transformers/use-default-value.js'; import parseStringifiedJson from './transformers/parse-stringified-json.js'; import createUuid from './transformers/create-uuid.js'; +import stringifyJson from './transformers/stringify-json.js'; const transformers = { base64ToString, @@ -34,6 +35,7 @@ const transformers = { useDefaultValue, parseStringifiedJson, createUuid, + stringifyJson, }; export default defineAction({ @@ -63,6 +65,7 @@ export default defineAction({ { label: 'Extract Number', value: 'extractNumber' }, { label: 'Lowercase', value: 'lowercase' }, { label: 'Parse stringified JSON', value: 'parseStringifiedJson' }, + { label: 'Stringify JSON', value: 'stringifyJson' }, { label: 'Pluralize', value: 'pluralize' }, { label: 'Replace', value: 'replace' }, { label: 'String to Base64', value: 'stringToBase64' }, diff --git a/packages/backend/src/apps/formatter/actions/text/transformers/stringify-json.js b/packages/backend/src/apps/formatter/actions/text/transformers/stringify-json.js new file mode 100644 index 00000000..eefe437a --- /dev/null +++ b/packages/backend/src/apps/formatter/actions/text/transformers/stringify-json.js @@ -0,0 +1,7 @@ +const stringifyJson = ($) => { + const input = $.step.parameters.input; + + return JSON.stringify(input); +}; + +export default stringifyJson; diff --git a/packages/backend/src/apps/formatter/dynamic-fields/list-transform-options/index.js b/packages/backend/src/apps/formatter/dynamic-fields/list-transform-options/index.js index a9e48258..fad345ec 100644 --- a/packages/backend/src/apps/formatter/dynamic-fields/list-transform-options/index.js +++ b/packages/backend/src/apps/formatter/dynamic-fields/list-transform-options/index.js @@ -13,6 +13,7 @@ import encodeUri from './text/encode-uri.js'; import trimWhitespace from './text/trim-whitespace.js'; import useDefaultValue from './text/use-default-value.js'; import parseStringifiedJson from './text/parse-stringified-json.js'; +import stringifyJson from './text/stringify-json.js'; import performMathOperation from './numbers/perform-math-operation.js'; import randomNumber from './numbers/random-number.js'; import formatNumber from './numbers/format-number.js'; @@ -40,6 +41,7 @@ const options = { formatPhoneNumber, formatDateTime, parseStringifiedJson, + stringifyJson, }; export default { diff --git a/packages/backend/src/apps/formatter/dynamic-fields/list-transform-options/text/parse-stringified-json.js b/packages/backend/src/apps/formatter/dynamic-fields/list-transform-options/text/parse-stringified-json.js index e4de0edc..fd75b75a 100644 --- a/packages/backend/src/apps/formatter/dynamic-fields/list-transform-options/text/parse-stringified-json.js +++ b/packages/backend/src/apps/formatter/dynamic-fields/list-transform-options/text/parse-stringified-json.js @@ -1,4 +1,4 @@ -const useDefaultValue = [ +const parseStringifiedJson = [ { label: 'Input', key: 'input', @@ -9,4 +9,4 @@ const useDefaultValue = [ }, ]; -export default useDefaultValue; +export default parseStringifiedJson; diff --git a/packages/backend/src/apps/formatter/dynamic-fields/list-transform-options/text/stringify-json.js b/packages/backend/src/apps/formatter/dynamic-fields/list-transform-options/text/stringify-json.js new file mode 100644 index 00000000..c0800555 --- /dev/null +++ b/packages/backend/src/apps/formatter/dynamic-fields/list-transform-options/text/stringify-json.js @@ -0,0 +1,12 @@ +const stringifyJson = [ + { + label: 'Input', + key: 'input', + type: 'string', + required: true, + description: 'JSON to stringify.', + variables: true, + }, +]; + +export default stringifyJson;