source: node_modules/swagger-client/lib/resolver/apidom/reference/resolve/resolvers/http-swagger-client/index.js

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: 2.4 KB
Line 
1"use strict";
2
3var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
4exports.__esModule = true;
5exports.default = void 0;
6var _empty = require("@swagger-api/apidom-reference/configuration/empty");
7require("../../../../../../helpers/fetch-polyfill.node.js");
8require("../../../../../../helpers/abortcontroller-polyfill.node.js");
9var _index = _interopRequireDefault(require("../../../../../../http/index.js"));
10const HttpResolverSwaggerClient = _empty.HttpResolver.compose({
11 props: {
12 name: 'http-swagger-client',
13 swaggerHTTPClient: _index.default,
14 swaggerHTTPClientConfig: {}
15 },
16 init({
17 swaggerHTTPClient = this.swaggerHTTPClient
18 } = {}) {
19 this.swaggerHTTPClient = swaggerHTTPClient;
20 },
21 methods: {
22 getHttpClient() {
23 return this.swaggerHTTPClient;
24 },
25 async read(file) {
26 const client = this.getHttpClient();
27 const controller = new AbortController();
28 const {
29 signal
30 } = controller;
31 const timeoutID = setTimeout(() => {
32 controller.abort();
33 }, this.timeout);
34 const credentials = this.getHttpClient().withCredentials || this.withCredentials ? 'include' : 'same-origin';
35 const redirect = this.redirects === 0 ? 'error' : 'follow';
36 const follow = this.redirects > 0 ? this.redirects : undefined;
37 try {
38 const response = await client({
39 url: file.uri,
40 signal,
41 userFetch: async (resource, options) => {
42 let res = await fetch(resource, options);
43 try {
44 // undici supports mutations
45 res.headers.delete('Content-Type');
46 } catch {
47 // Fetch API has guards which prevent mutations
48 res = new Response(res.body, {
49 ...res,
50 headers: new Headers(res.headers)
51 });
52 res.headers.delete('Content-Type');
53 }
54 return res;
55 },
56 credentials,
57 redirect,
58 follow,
59 ...this.swaggerHTTPClientConfig
60 });
61 return response.text.arrayBuffer();
62 } catch (error) {
63 throw new _empty.ResolverError(`Error downloading "${file.uri}"`, {
64 cause: error
65 });
66 } finally {
67 clearTimeout(timeoutID);
68 }
69 }
70 }
71});
72var _default = exports.default = HttpResolverSwaggerClient;
Note: See TracBrowser for help on using the repository browser.