[d24f17c] | 1 | "use strict";
|
---|
| 2 |
|
---|
| 3 | var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
|
---|
| 4 | exports.__esModule = true;
|
---|
| 5 | exports.default = exports.createRefractor = void 0;
|
---|
| 6 | var _apidomCore = require("@swagger-api/apidom-core");
|
---|
| 7 | var _ramda = require("ramda");
|
---|
| 8 | var _specification = _interopRequireDefault(require("./specification.cjs"));
|
---|
| 9 | var _visitor = require("../traversal/visitor.cjs");
|
---|
| 10 | var _toolbox = _interopRequireDefault(require("./toolbox.cjs"));
|
---|
| 11 | const refract = (value, {
|
---|
| 12 | specPath = ['visitors', 'document', 'objects', 'OpenApi', '$visitor'],
|
---|
| 13 | plugins = []
|
---|
| 14 | } = {}) => {
|
---|
| 15 | const element = (0, _apidomCore.refract)(value);
|
---|
| 16 | const resolvedSpec = (0, _apidomCore.dereference)(_specification.default);
|
---|
| 17 |
|
---|
| 18 | /**
|
---|
| 19 | * This is where generic ApiDOM becomes semantic (namespace applied).
|
---|
| 20 | * We don't allow consumers to hook into this translation.
|
---|
| 21 | * Though we allow consumers to define their onw plugins on already transformed ApiDOM.
|
---|
| 22 | */
|
---|
| 23 | const RootVisitorClass = (0, _ramda.path)(specPath, resolvedSpec);
|
---|
| 24 | const rootVisitor = new RootVisitorClass({
|
---|
| 25 | specObj: resolvedSpec
|
---|
| 26 | });
|
---|
| 27 | (0, _apidomCore.visit)(element, rootVisitor);
|
---|
| 28 |
|
---|
| 29 | /**
|
---|
| 30 | * Running plugins visitors means extra single traversal === performance hit.
|
---|
| 31 | */
|
---|
| 32 | return (0, _apidomCore.dispatchRefractorPlugins)(rootVisitor.element, plugins, {
|
---|
| 33 | toolboxCreator: _toolbox.default,
|
---|
| 34 | visitorOptions: {
|
---|
| 35 | keyMap: _visitor.keyMap,
|
---|
| 36 | nodeTypeGetter: _visitor.getNodeType
|
---|
| 37 | }
|
---|
| 38 | });
|
---|
| 39 | };
|
---|
| 40 | const createRefractor = specPath => (value, options = {}) => refract(value, {
|
---|
| 41 | specPath,
|
---|
| 42 | ...options
|
---|
| 43 | });
|
---|
| 44 | exports.createRefractor = createRefractor;
|
---|
| 45 | var _default = exports.default = refract; |
---|