source: node_modules/@swagger-api/apidom-reference/es/parse/parsers/yaml-1-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.1 KB
Line 
1import stampit from 'stampit';
2import { parse, mediaTypes, detect } from '@swagger-api/apidom-parser-adapter-yaml-1-2';
3import ParserError from "../../../errors/ParserError.mjs";
4import Parser from "../Parser.mjs";
5const YamlParser = stampit(Parser, {
6 props: {
7 name: 'yaml-1-2',
8 fileExtensions: ['.yaml', '.yml'],
9 mediaTypes
10 },
11 methods: {
12 async canParse(file) {
13 const hasSupportedFileExtension = this.fileExtensions.length === 0 ? true : this.fileExtensions.includes(file.extension);
14 const hasSupportedMediaType = this.mediaTypes.includes(file.mediaType);
15 if (!hasSupportedFileExtension) return false;
16 if (hasSupportedMediaType) return true;
17 if (!hasSupportedMediaType) {
18 return detect(file.toString());
19 }
20 return false;
21 },
22 async parse(file) {
23 const source = file.toString();
24 try {
25 return await parse(source, {
26 sourceMap: this.sourceMap
27 });
28 } catch (error) {
29 throw new ParserError(`Error parsing "${file.uri}"`, {
30 cause: error
31 });
32 }
33 }
34 }
35});
36export default YamlParser;
Note: See TracBrowser for help on using the repository browser.