Files
bruno/packages/bruno-electron/src/utils/parse.js
naman-bruno 8c997c46af make yml default option (#6985)
* make yml default option
2026-02-02 19:45:45 +05:30

44 lines
1.5 KiB
JavaScript

const { parseRequestAndRedactBody, parseRequestViaWorker, DEFAULT_COLLECTION_FORMAT } = require('@usebruno/filestore');
/**
* Parses a large BRU request string by redacting body blocks, parsing the remainder,
* and then reinserting extracted body content into the parsed structure.
* @param {string} bruContent
* @param {string} format - Collection format, defaults to 'bru'
* @returns {Promise<any>} parsed request JSON
*/
async function parseLargeRequestWithRedaction(bruContent, format = DEFAULT_COLLECTION_FORMAT) {
const { bruFileStringWithRedactedBody, extractedBodyContent } = parseRequestAndRedactBody(bruContent, { format });
const parsedData = await parseRequestViaWorker(bruFileStringWithRedactedBody, { format });
if (!parsedData.request) {
parsedData.request = {};
}
if (!parsedData.request.body) {
parsedData.request.body = {};
}
if (extractedBodyContent.json) {
parsedData.request.body.json = extractedBodyContent.json;
}
if (extractedBodyContent.text) {
parsedData.request.body.text = extractedBodyContent.text;
}
if (extractedBodyContent.xml) {
parsedData.request.body.xml = extractedBodyContent.xml;
}
if (extractedBodyContent.sparql) {
parsedData.request.body.sparql = extractedBodyContent.sparql;
}
if (extractedBodyContent.graphql) {
if (!parsedData.request.body.graphql) {
parsedData.request.body.graphql = {};
}
parsedData.request.body.graphql.query = extractedBodyContent.graphql;
}
return parsedData;
}
module.exports = { parseLargeRequestWithRedaction };