source: node_modules/@swagger-api/apidom-ns-json-schema-draft-4/cjs/refractor/index.cjs

main
Last change on this file was d24f17c, checked in by Aleksandar Panovski <apano77@…>, 15 months ago

Initial commit

  • Property mode set to 100644
File size: 1.7 KB
Line 
1"use strict";
2
3var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
4exports.__esModule = true;
5exports.default = exports.createRefractor = void 0;
6var _ramdaAdjunct = require("ramda-adjunct");
7var _apidomCore = require("@swagger-api/apidom-core");
8var _specification = _interopRequireDefault(require("./specification.cjs"));
9var _visitor = require("../traversal/visitor.cjs");
10var _toolbox = _interopRequireDefault(require("./toolbox.cjs"));
11const 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};
43const createRefractor = specPath => (value, options = {}) => refract(value, {
44 specPath,
45 ...options
46});
47exports.createRefractor = createRefractor;
48var _default = exports.default = refract;
Note: See TracBrowser for help on using the repository browser.