diff --git a/packages/bruno-app/src/components/RequestPane/RequestBody/RequestBodyMode/index.js b/packages/bruno-app/src/components/RequestPane/RequestBody/RequestBodyMode/index.js index b826ca9cf..e60a83450 100644 --- a/packages/bruno-app/src/components/RequestPane/RequestBody/RequestBodyMode/index.js +++ b/packages/bruno-app/src/components/RequestPane/RequestBody/RequestBodyMode/index.js @@ -9,6 +9,7 @@ import StyledWrapper from './StyledWrapper'; import { updateRequestBody } from 'providers/ReduxStore/slices/collections/index'; import { toastError } from 'utils/common/error'; import { parse, stringify } from 'lossless-json'; +import xmlFormat from 'xml-formatter'; const RequestBodyMode = ({ item, collection }) => { const dispatch = useDispatch(); @@ -50,6 +51,19 @@ const RequestBodyMode = ({ item, collection }) => { } catch (e) { toastError(new Error('Unable to prettify. Invalid JSON format.')); } + } else if (body?.xml && bodyMode === 'xml') { + try { + const prettyBodyXML = xmlFormat(body.xml, { collapseContent: true }); + dispatch( + updateRequestBody({ + content: prettyBodyXML, + itemUid: item.uid, + collectionUid: collection.uid + }) + ); + } catch (e) { + toastError(new Error('Unable to prettify. Invalid XML format.')); + } } }; @@ -125,7 +139,7 @@ const RequestBodyMode = ({ item, collection }) => { - {bodyMode === 'json' && ( + {(bodyMode === 'json' || bodyMode === 'xml') && (