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 _ramdaAdjunct = require("ramda-adjunct");
|
---|
7 | var _apidomCore = require("@swagger-api/apidom-core");
|
---|
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', 'JSONSchema', '$visitor'],
|
---|
13 | plugins = [],
|
---|
14 | specificationObj = _specification.default
|
---|
15 | } = {}) => {
|
---|
16 | const element = (0, _apidomCore.refract)(value);
|
---|
17 | const resolvedSpec = (0, _apidomCore.dereference)(specificationObj);
|
---|
18 |
|
---|
19 | /**
|
---|
20 | * This is where generic ApiDOM becomes semantic (namespace applied).
|
---|
21 | * We don't allow consumers to hook into this translation.
|
---|
22 | * Though we allow consumers to define their onw plugins on already transformed ApiDOM.
|
---|
23 | */
|
---|
24 | const rootVisitor = (0, _ramdaAdjunct.invokeArgs)(specPath, [], resolvedSpec);
|
---|
25 | // @ts-ignore
|
---|
26 | (0, _apidomCore.visit)(element, rootVisitor, {
|
---|
27 | state: {
|
---|
28 | specObj: resolvedSpec
|
---|
29 | }
|
---|
30 | });
|
---|
31 |
|
---|
32 | /**
|
---|
33 | * Running plugins visitors means extra single traversal === performance hit.
|
---|
34 | */
|
---|
35 | return (0, _apidomCore.dispatchRefractorPlugins)(rootVisitor.element, plugins, {
|
---|
36 | toolboxCreator: _toolbox.default,
|
---|
37 | visitorOptions: {
|
---|
38 | keyMap: _visitor.keyMap,
|
---|
39 | nodeTypeGetter: _visitor.getNodeType
|
---|
40 | }
|
---|
41 | });
|
---|
42 | };
|
---|
43 | const createRefractor = specPath => (value, options = {}) => refract(value, {
|
---|
44 | specPath,
|
---|
45 | ...options
|
---|
46 | });
|
---|
47 | exports.createRefractor = createRefractor;
|
---|
48 | var _default = exports.default = refract; |
---|