60 lines
2.7 KiB
Plaintext
60 lines
2.7 KiB
Plaintext
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.MediaTypeExamplesOverride = void 0;
|
|
const utils_1 = require("../../utils");
|
|
const ref_utils_1 = require("../../ref-utils");
|
|
const MediaTypeExamplesOverride = ({ operationIds }) => {
|
|
return {
|
|
Operation: {
|
|
enter(operation, ctx) {
|
|
const operationId = operation.operationId;
|
|
if (!operationId) {
|
|
return;
|
|
}
|
|
const properties = operationIds[operationId];
|
|
if (!properties) {
|
|
return;
|
|
}
|
|
if (properties.responses && operation.responses) {
|
|
for (const responseCode of Object.keys(properties.responses)) {
|
|
const resolvedResponse = checkAndResolveRef(operation.responses[responseCode], ctx.resolve);
|
|
if (!resolvedResponse) {
|
|
continue;
|
|
}
|
|
resolvedResponse.content = resolvedResponse.content ? resolvedResponse.content : {};
|
|
Object.keys(properties.responses[responseCode]).forEach((mimeType) => {
|
|
resolvedResponse.content[mimeType] = {
|
|
...resolvedResponse.content[mimeType],
|
|
examples: (0, utils_1.yamlAndJsonSyncReader)(properties.responses[responseCode][mimeType]),
|
|
};
|
|
});
|
|
operation.responses[responseCode] = resolvedResponse;
|
|
}
|
|
}
|
|
if (properties.request && operation.requestBody) {
|
|
const resolvedRequest = checkAndResolveRef(operation.requestBody, ctx.resolve);
|
|
if (!resolvedRequest) {
|
|
return;
|
|
}
|
|
resolvedRequest.content = resolvedRequest.content ? resolvedRequest.content : {};
|
|
Object.keys(properties.request).forEach((mimeType) => {
|
|
resolvedRequest.content[mimeType] = {
|
|
...resolvedRequest.content[mimeType],
|
|
examples: (0, utils_1.yamlAndJsonSyncReader)(properties.request[mimeType]),
|
|
};
|
|
});
|
|
operation.requestBody = resolvedRequest;
|
|
}
|
|
},
|
|
},
|
|
};
|
|
};
|
|
exports.MediaTypeExamplesOverride = MediaTypeExamplesOverride;
|
|
function checkAndResolveRef(node, resolver) {
|
|
if (!(0, ref_utils_1.isRef)(node)) {
|
|
return node;
|
|
}
|
|
const resolved = resolver(node);
|
|
return resolved.error ? undefined : JSON.parse(JSON.stringify(resolved.node));
|
|
}
|