@redocly/respect-core
Version:
API testing framework core
27 lines • 1.11 kB
JavaScript
import JsonPointerLib from 'json-pointer';
import { evaluateRuntimeExpressionPayload } from '../runtime-expressions/index.js';
export function handlePayloadReplacements({ payload, replacements, expressionContext, logger, }) {
for (const replacement of replacements) {
const { target, value } = replacement;
if (typeof target !== 'string') {
throw new Error(`Invalid JSON Pointer: ${target}`);
}
try {
// Get the current value using JSON Pointer
const currentValue = JsonPointerLib.get(payload, target);
const evaluatedValue = evaluateRuntimeExpressionPayload({
payload: value,
context: expressionContext,
logger,
});
if (currentValue !== undefined) {
// Replace the value using JSON Pointer
JsonPointerLib.set(payload, target, evaluatedValue);
}
}
catch {
throw new Error(`Invalid JSON Pointer: ${target}`);
}
}
}
//# sourceMappingURL=handle-request-body-replacements.js.map