1 | "use strict";
|
---|
2 |
|
---|
3 | var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
|
---|
4 | exports.__esModule = true;
|
---|
5 | exports.pojoAdapter = exports.default = void 0;
|
---|
6 | var _apidomCore = require("@swagger-api/apidom-core");
|
---|
7 | var _apidomNsOpenapi = require("@swagger-api/apidom-ns-openapi-3-1");
|
---|
8 | var _opId = _interopRequireDefault(require("../../../helpers/op-id.js"));
|
---|
9 | /* eslint-disable camelcase */
|
---|
10 |
|
---|
11 | const normalize = element => {
|
---|
12 | if (!(0, _apidomCore.isObjectElement)(element)) return element;
|
---|
13 | if (element.hasKey('$$normalized')) return element;
|
---|
14 | const plugins = [(0, _apidomNsOpenapi.refractorPluginNormalizeOperationIds)({
|
---|
15 | operationIdNormalizer: (operationId, path, method) => (0, _opId.default)({
|
---|
16 | operationId
|
---|
17 | }, path, method, {
|
---|
18 | v2OperationIdCompatibilityMode: false
|
---|
19 | })
|
---|
20 | }), (0, _apidomNsOpenapi.refractorPluginNormalizeParameters)(), (0, _apidomNsOpenapi.refractorPluginNormalizeSecurityRequirements)(), (0, _apidomNsOpenapi.refractorPluginNormalizeServers)(), (0, _apidomNsOpenapi.refractorPluginNormalizeParameterExamples)(), (0, _apidomNsOpenapi.refractorPluginNormalizeHeaderExamples)()];
|
---|
21 | const normalized = (0, _apidomCore.dispatchRefractorPlugins)(element, plugins, {
|
---|
22 | toolboxCreator: _apidomNsOpenapi.createToolbox,
|
---|
23 | visitorOptions: {
|
---|
24 | keyMap: _apidomNsOpenapi.keyMap,
|
---|
25 | nodeTypeGetter: _apidomNsOpenapi.getNodeType
|
---|
26 | }
|
---|
27 | });
|
---|
28 | normalized.set('$$normalized', true);
|
---|
29 | return normalized;
|
---|
30 | };
|
---|
31 |
|
---|
32 | /**
|
---|
33 | * This adapter allow to perform normalization on Plain Old JavaScript Objects.
|
---|
34 | * The function adapts the `normalize` function interface and is able to accept
|
---|
35 | * Plain Old JavaScript Objects and returns Plain Old JavaScript Objects.
|
---|
36 | */
|
---|
37 | const pojoAdapter = normalizeFn => spec => {
|
---|
38 | if (spec != null && spec.$$normalized) return spec;
|
---|
39 | if (pojoAdapter.cache.has(spec)) return pojoAdapter.cache.get(spec);
|
---|
40 | const openApiElement = _apidomNsOpenapi.OpenApi3_1Element.refract(spec);
|
---|
41 | const normalized = normalizeFn(openApiElement);
|
---|
42 | const value = (0, _apidomCore.toValue)(normalized);
|
---|
43 | pojoAdapter.cache.set(spec, value);
|
---|
44 | return value;
|
---|
45 | };
|
---|
46 | exports.pojoAdapter = pojoAdapter;
|
---|
47 | pojoAdapter.cache = new WeakMap();
|
---|
48 | var _default = exports.default = normalize;
|
---|
49 | /* eslint-enable camelcase */ |
---|