swagger-client
Version:
SwaggerJS - a collection of interfaces for OAI specs
51 lines (47 loc) • 2.23 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
exports.__esModule = true;
exports.pojoAdapter = exports.default = void 0;
var _apidomCore = require("@swagger-api/apidom-core");
var _apidomNsOpenapi = require("@swagger-api/apidom-ns-openapi-3-2");
var _opId = _interopRequireDefault(require("../../../helpers/op-id.js"));
var _resolve = _interopRequireDefault(require("./resolve.js"));
/* eslint-disable camelcase */
const normalize = element => {
if (!(0, _apidomCore.isObjectElement)(element)) return element;
const plugins = [(0, _apidomNsOpenapi.refractorPluginNormalizeOperationIds)({
operationIdNormalizer: (operationId, path, method) => (0, _opId.default)({
operationId
}, path, method, {
v2OperationIdCompatibilityMode: false
})
}), (0, _apidomNsOpenapi.refractorPluginNormalizeParameters)(), (0, _apidomNsOpenapi.refractorPluginNormalizeSecurityRequirements)(), (0, _apidomNsOpenapi.refractorPluginNormalizeParameterExamples)(), (0, _apidomNsOpenapi.refractorPluginNormalizeHeaderExamples)()];
const normalized = (0, _apidomCore.dispatchRefractorPlugins)(element, plugins, {
toolboxCreator: _apidomNsOpenapi.createToolbox,
visitorOptions: {
keyMap: _apidomNsOpenapi.keyMap,
nodeTypeGetter: _apidomNsOpenapi.getNodeType
}
});
return normalized;
};
/**
* This adapter allow to perform normalization on Plain Old JavaScript Objects.
* The function adapts the `normalize` function interface and is able to accept
* Plain Old JavaScript Objects and returns Plain Old JavaScript Objects.
*/
const pojoAdapter = normalizeFn => spec => {
const openApiElement = _apidomNsOpenapi.OpenApi3_2Element.refract(spec);
openApiElement.classes.push('result');
const normalized = normalizeFn(openApiElement);
const value = (0, _apidomCore.toValue)(normalized);
/**
* We're setting the cache here to avoid repeated refracting
* in `openapi-3-2-apidom` strategy resolve method.
*/
_resolve.default.cache.set(value, normalized);
return (0, _apidomCore.toValue)(normalized);
};
exports.pojoAdapter = pojoAdapter;
var _default = exports.default = normalize;
/* eslint-enable camelcase */