source: node_modules/@swagger-api/apidom-reference/cjs/parse/parsers/binary/index-node.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.8 KB
Line 
1"use strict";
2
3var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
4exports.__esModule = true;
5exports.default = void 0;
6var _buffer = require("#buffer");
7var _stampit = _interopRequireDefault(require("stampit"));
8var _apidomCore = require("@swagger-api/apidom-core");
9var _ParserError = _interopRequireDefault(require("../../../errors/ParserError.cjs"));
10var _Parser = _interopRequireDefault(require("../Parser.cjs"));
11// eslint-disable-line import/order
12
13/**
14 * Everything that is not recognized by other parsers will be considered by this parser
15 * as a binary data and will be encoded to Base64 format.
16 */
17
18const BinaryParser = (0, _stampit.default)(_Parser.default, {
19 props: {
20 name: 'binary'
21 },
22 methods: {
23 async canParse(file) {
24 const hasSupportedFileExtension = this.fileExtensions.length === 0 ? true : this.fileExtensions.includes(file.extension);
25 return hasSupportedFileExtension;
26 },
27 async parse(file) {
28 let base64String;
29 try {
30 // @ts-ignore
31 base64String = _buffer.Buffer.from(file.data).toString('base64');
32 } catch {
33 base64String = _buffer.Buffer.from(file.toString()).toString('base64');
34 }
35 try {
36 const parseResultElement = new _apidomCore.ParseResultElement();
37 if (base64String.length !== 0) {
38 const base64StringElement = new _apidomCore.StringElement(base64String);
39 base64StringElement.classes.push('result');
40 parseResultElement.push(base64StringElement);
41 }
42 return parseResultElement;
43 } catch (error) {
44 throw new _ParserError.default(`Error parsing "${file.uri}"`, {
45 cause: error
46 });
47 }
48 }
49 }
50});
51var _default = exports.default = BinaryParser;
Note: See TracBrowser for help on using the repository browser.