source: node_modules/@swagger-api/apidom-reference/es/resolve/strategies/openapi-2/index.mjs@ 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: 1.5 KB
Line 
1import stampit from 'stampit';
2import { createNamespace, visit } from '@swagger-api/apidom-core';
3import openapi2Namespace, { getNodeType, isSwaggerElement, keyMap, mediaTypes } from '@swagger-api/apidom-ns-openapi-2';
4import ResolveStrategy from "../ResolveStrategy.mjs";
5import ReferenceSet from "../../../ReferenceSet.mjs";
6import Reference from "../../../Reference.mjs";
7import OpenApi2ResolveVisitor from "./visitor.mjs"; // @ts-ignore
8const visitAsync = visit[Symbol.for('nodejs.util.promisify.custom')];
9const OpenApi2ResolveStrategy = stampit(ResolveStrategy, {
10 init() {
11 this.name = 'openapi-2';
12 },
13 methods: {
14 canResolve(file) {
15 var _file$parseResult;
16 // assert by media type
17 if (file.mediaType !== 'text/plain') {
18 return mediaTypes.includes(file.mediaType);
19 }
20
21 // assert by inspecting ApiDOM
22 return isSwaggerElement((_file$parseResult = file.parseResult) === null || _file$parseResult === void 0 ? void 0 : _file$parseResult.api);
23 },
24 async resolve(file, options) {
25 const namespace = createNamespace(openapi2Namespace);
26 const reference = Reference({
27 uri: file.uri,
28 value: file.parseResult
29 });
30 const visitor = OpenApi2ResolveVisitor({
31 reference,
32 namespace,
33 options
34 });
35 const refSet = ReferenceSet();
36 refSet.add(reference);
37 await visitAsync(refSet.rootRef.value, visitor, {
38 keyMap,
39 nodeTypeGetter: getNodeType
40 });
41 return refSet;
42 }
43 }
44});
45export default OpenApi2ResolveStrategy;
Note: See TracBrowser for help on using the repository browser.