UNPKG

@usebruno/cli

Version:

With Bruno CLI, you can now run your API collections with ease using simple command line commands.

74 lines (64 loc) 1.93 kB
const { walkAndMask } = require('@usebruno/common/runner'); /** * Return a sanitized deep copy of runner results with comprehensive masking applied. */ function sanitizeRunnerResults(runnerResults = [], maskingOptions = {}) { if (!Array.isArray(runnerResults)) return runnerResults; return runnerResults.map( ({ iterationIndex, results, summary, iterationData }) => { const sanitizedResults = Array.isArray(results) ? results.map((result) => { return walkAndMask(result, { secretValues: maskingOptions.secretValues }); }) : results; return { iterationIndex, iterationData, results: sanitizedResults, summary }; } ); } const deleteHeaderIfExists = (headers, header) => { Object.keys(headers).forEach((key) => { if (key.toLowerCase() === header.toLowerCase()) { delete headers[key]; } }); }; const sanitizeResultsForReporter = (results, { skipAllHeaders = false, skipHeaders = [], skipRequestBody = false, skipResponseBody = false } = {}) => { if (skipAllHeaders) { results.forEach((result) => { result.request.headers = {}; result.response.headers = {}; }); } if (skipHeaders?.length) { results.forEach((result) => { if (result.request?.headers) { skipHeaders.forEach((header) => { deleteHeaderIfExists(result.request.headers, header); }); } if (result.response?.headers) { skipHeaders.forEach((header) => { deleteHeaderIfExists(result.response.headers, header); }); } }); } if (skipRequestBody) { results.forEach((result) => { delete result.request?.data; }); } if (skipResponseBody) { results.forEach((result) => { delete result.response?.data; }); } }; module.exports = { sanitizeRunnerResults, sanitizeResultsForReporter };