source: node_modules/@swagger-api/apidom-reference/cjs/resolve/index.cjs@ d24f17c

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

Initial commit

  • Property mode set to 100644
File size: 2.4 KB
RevLine 
[d24f17c]1"use strict";
2
3var _interopRequireWildcard = require("@babel/runtime-corejs3/helpers/interopRequireWildcard").default;
4var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
5exports.__esModule = true;
6exports.resolveApiDOM = exports.default = void 0;
7var _ramda = require("ramda");
8var _apidomCore = require("@swagger-api/apidom-core");
9var _util = require("../options/util.cjs");
10var _index = _interopRequireDefault(require("../parse/index.cjs"));
11var plugins = _interopRequireWildcard(require("../util/plugins.cjs"));
12var _File = _interopRequireDefault(require("../util/File.cjs"));
13var _ResolverError = _interopRequireDefault(require("../errors/ResolverError.cjs"));
14var _UnmatchedResolveStrategyError = _interopRequireDefault(require("../errors/UnmatchedResolveStrategyError.cjs"));
15var url = _interopRequireWildcard(require("../util/url.cjs"));
16/**
17 * Resolves ApiDOM with all its external references.
18 */
19const resolveApiDOM = async (element, options) => {
20 // @ts-ignore
21 let parseResult = element;
22
23 // wrap element into parse result
24 if (!(0, _apidomCore.isParseResultElement)(element)) {
25 // shallow clone of the element
26 const elementClone = (0, _apidomCore.cloneShallow)(element);
27 elementClone.classes.push('result');
28 parseResult = new _apidomCore.ParseResultElement([elementClone]);
29 }
30 const sanitizedURI = url.sanitize(url.stripHash(options.resolve.baseURI));
31 const file = (0, _File.default)({
32 uri: sanitizedURI,
33 parseResult,
34 mediaType: options.parse.mediaType
35 });
36 const resolveStrategies = await plugins.filter('canResolve', file, options.resolve.strategies);
37
38 // we couldn't find any resolver for this File
39 if ((0, _ramda.isEmpty)(resolveStrategies)) {
40 throw new _UnmatchedResolveStrategyError.default(file.uri);
41 }
42 try {
43 const {
44 result
45 } = await plugins.run('resolve', [file, options], resolveStrategies);
46 return result;
47 } catch (error) {
48 throw new _ResolverError.default(`Error while resolving file "${file.uri}"`, {
49 cause: error
50 });
51 }
52};
53
54/**
55 * Resolves a file with all its external references.
56 */
57exports.resolveApiDOM = resolveApiDOM;
58const resolve = async (uri, options) => {
59 const parseResult = await (0, _index.default)(uri, options);
60 const mergedOptions = (0, _util.merge)(options, {
61 resolve: {
62 baseURI: url.sanitize(uri)
63 }
64 });
65 return resolveApiDOM(parseResult, mergedOptions);
66};
67var _default = exports.default = resolve;
Note: See TracBrowser for help on using the repository browser.