source: node_modules/@swagger-api/apidom-reference/cjs/parse/parsers/openapi-json-3-1/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: 1.7 KB
Line 
1"use strict";
2
3var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
4exports.__esModule = true;
5exports.default = void 0;
6var _stampit = _interopRequireDefault(require("stampit"));
7var _ramda = require("ramda");
8var _apidomParserAdapterOpenapiJson = require("@swagger-api/apidom-parser-adapter-openapi-json-3-1");
9var _ParserError = _interopRequireDefault(require("../../../errors/ParserError.cjs"));
10var _Parser = _interopRequireDefault(require("../Parser.cjs"));
11// eslint-disable-next-line @typescript-eslint/naming-convention
12const OpenApiJson3_1Parser = (0, _stampit.default)(_Parser.default, {
13 props: {
14 name: 'openapi-json-3-1',
15 fileExtensions: ['.json'],
16 mediaTypes: _apidomParserAdapterOpenapiJson.mediaTypes
17 },
18 methods: {
19 async canParse(file) {
20 const hasSupportedFileExtension = this.fileExtensions.length === 0 ? true : this.fileExtensions.includes(file.extension);
21 const hasSupportedMediaType = this.mediaTypes.includes(file.mediaType);
22 if (!hasSupportedFileExtension) return false;
23 if (hasSupportedMediaType) return true;
24 if (!hasSupportedMediaType) {
25 return (0, _apidomParserAdapterOpenapiJson.detect)(file.toString());
26 }
27 return false;
28 },
29 async parse(file) {
30 const source = file.toString();
31 try {
32 const parserOpts = (0, _ramda.pick)(['sourceMap', 'syntacticAnalysis', 'refractorOpts'], this);
33 return await (0, _apidomParserAdapterOpenapiJson.parse)(source, parserOpts);
34 } catch (error) {
35 throw new _ParserError.default(`Error parsing "${file.uri}"`, {
36 cause: error
37 });
38 }
39 }
40 }
41});
42var _default = exports.default = OpenApiJson3_1Parser;
Note: See TracBrowser for help on using the repository browser.