1 | "use strict";
|
---|
2 |
|
---|
3 | var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
|
---|
4 | exports.__esModule = true;
|
---|
5 | exports.default = void 0;
|
---|
6 | var _empty = require("@swagger-api/apidom-reference/configuration/empty");
|
---|
7 | require("../../../../../../helpers/fetch-polyfill.node.js");
|
---|
8 | require("../../../../../../helpers/abortcontroller-polyfill.node.js");
|
---|
9 | var _index = _interopRequireDefault(require("../../../../../../http/index.js"));
|
---|
10 | const 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 | });
|
---|
72 | var _default = exports.default = HttpResolverSwaggerClient; |
---|