api-def 0.9.0 → 0.9.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (121) hide show
  1. package/cjs/Api.d.ts +35 -35
  2. package/cjs/Api.js +140 -144
  3. package/cjs/ApiConstants.d.ts +58 -58
  4. package/cjs/ApiConstants.js +55 -55
  5. package/cjs/ApiTypes.d.ts +103 -103
  6. package/cjs/ApiTypes.js +4 -4
  7. package/cjs/ApiUtils.d.ts +6 -6
  8. package/cjs/ApiUtils.js +51 -53
  9. package/cjs/Endpoint.d.ts +52 -52
  10. package/cjs/Endpoint.js +104 -108
  11. package/cjs/EndpointBuilder.d.ts +14 -14
  12. package/cjs/EndpointBuilder.js +46 -46
  13. package/cjs/MockingTypes.d.ts +30 -30
  14. package/cjs/MockingTypes.js +2 -2
  15. package/cjs/QueryHandling.d.ts +3 -3
  16. package/cjs/QueryHandling.js +24 -24
  17. package/cjs/RequestConfig.d.ts +2 -2
  18. package/cjs/RequestConfig.js +74 -74
  19. package/cjs/RequestContext.d.ts +48 -48
  20. package/cjs/RequestContext.js +235 -238
  21. package/cjs/RequestError.d.ts +30 -30
  22. package/cjs/RequestError.js +47 -47
  23. package/cjs/Requester.d.ts +3 -3
  24. package/cjs/Requester.js +335 -336
  25. package/cjs/TextDecoding.d.ts +1 -1
  26. package/cjs/TextDecoding.js +152 -139
  27. package/cjs/UtilTypes.d.ts +5 -5
  28. package/cjs/UtilTypes.js +2 -2
  29. package/cjs/Utils.d.ts +15 -15
  30. package/cjs/Utils.js +79 -77
  31. package/cjs/Validation.d.ts +8 -8
  32. package/cjs/Validation.js +2 -2
  33. package/cjs/backend/AxiosRequestBackend.d.ts +13 -13
  34. package/cjs/backend/AxiosRequestBackend.js +99 -99
  35. package/cjs/backend/FetchRequestBackend.d.ts +15 -15
  36. package/cjs/backend/FetchRequestBackend.js +202 -197
  37. package/cjs/backend/MockRequestBackend.d.ts +11 -11
  38. package/cjs/backend/MockRequestBackend.js +164 -164
  39. package/cjs/backend/RequestBackend.d.ts +19 -19
  40. package/cjs/backend/RequestBackend.js +2 -2
  41. package/cjs/cache/CacheBackend.d.ts +6 -6
  42. package/cjs/cache/CacheBackend.js +2 -2
  43. package/cjs/cache/Caching.d.ts +10 -10
  44. package/cjs/cache/Caching.js +88 -88
  45. package/cjs/cache/LocalForageCacheBackend.d.ts +9 -9
  46. package/cjs/cache/LocalForageCacheBackend.js +24 -24
  47. package/cjs/cache/LocalStorageCacheBackend.d.ts +7 -7
  48. package/cjs/cache/LocalStorageCacheBackend.js +77 -77
  49. package/cjs/index.d.ts +13 -13
  50. package/cjs/index.js +41 -41
  51. package/cjs/middleware/CacheMiddleware.d.ts +7 -7
  52. package/cjs/middleware/CacheMiddleware.js +107 -107
  53. package/cjs/middleware/LoggingMiddleware.d.ts +6 -6
  54. package/cjs/middleware/LoggingMiddleware.js +82 -88
  55. package/cjs/util/retry/index.d.ts +3 -3
  56. package/cjs/util/retry/index.js +52 -52
  57. package/cjs/util/retry/lib/retry.d.ts +3 -3
  58. package/cjs/util/retry/lib/retry.js +50 -54
  59. package/cjs/util/retry/lib/retryOperation.d.ts +27 -27
  60. package/cjs/util/retry/lib/retryOperation.js +130 -134
  61. package/esm/Api.d.ts +35 -35
  62. package/esm/Api.js +92 -98
  63. package/esm/ApiConstants.d.ts +58 -58
  64. package/esm/ApiConstants.js +52 -52
  65. package/esm/ApiTypes.d.ts +103 -103
  66. package/esm/ApiTypes.js +1 -1
  67. package/esm/ApiUtils.d.ts +6 -6
  68. package/esm/ApiUtils.js +43 -45
  69. package/esm/Endpoint.d.ts +52 -52
  70. package/esm/Endpoint.js +66 -70
  71. package/esm/EndpointBuilder.d.ts +14 -14
  72. package/esm/EndpointBuilder.js +31 -31
  73. package/esm/MockingTypes.d.ts +30 -30
  74. package/esm/MockingTypes.js +1 -1
  75. package/esm/QueryHandling.d.ts +3 -3
  76. package/esm/QueryHandling.js +19 -19
  77. package/esm/RequestConfig.d.ts +2 -2
  78. package/esm/RequestConfig.js +56 -56
  79. package/esm/RequestContext.d.ts +48 -48
  80. package/esm/RequestContext.js +167 -170
  81. package/esm/RequestError.d.ts +30 -30
  82. package/esm/RequestError.js +42 -42
  83. package/esm/Requester.d.ts +3 -3
  84. package/esm/Requester.js +252 -253
  85. package/esm/TextDecoding.d.ts +1 -1
  86. package/esm/TextDecoding.js +148 -135
  87. package/esm/UtilTypes.d.ts +5 -5
  88. package/esm/UtilTypes.js +1 -1
  89. package/esm/Utils.d.ts +15 -15
  90. package/esm/Utils.js +66 -68
  91. package/esm/Validation.d.ts +8 -8
  92. package/esm/Validation.js +1 -1
  93. package/esm/backend/AxiosRequestBackend.d.ts +13 -13
  94. package/esm/backend/AxiosRequestBackend.js +62 -62
  95. package/esm/backend/FetchRequestBackend.d.ts +15 -15
  96. package/esm/backend/FetchRequestBackend.js +136 -126
  97. package/esm/backend/MockRequestBackend.d.ts +11 -11
  98. package/esm/backend/MockRequestBackend.js +116 -116
  99. package/esm/backend/RequestBackend.d.ts +19 -19
  100. package/esm/backend/RequestBackend.js +1 -1
  101. package/esm/cache/CacheBackend.d.ts +6 -6
  102. package/esm/cache/CacheBackend.js +1 -1
  103. package/esm/cache/Caching.d.ts +10 -10
  104. package/esm/cache/Caching.js +39 -39
  105. package/esm/cache/LocalForageCacheBackend.d.ts +9 -9
  106. package/esm/cache/LocalForageCacheBackend.js +20 -20
  107. package/esm/cache/LocalStorageCacheBackend.d.ts +7 -7
  108. package/esm/cache/LocalStorageCacheBackend.js +32 -32
  109. package/esm/index.d.ts +13 -13
  110. package/esm/index.js +14 -15
  111. package/esm/middleware/CacheMiddleware.d.ts +7 -7
  112. package/esm/middleware/CacheMiddleware.js +58 -58
  113. package/esm/middleware/LoggingMiddleware.d.ts +6 -6
  114. package/esm/middleware/LoggingMiddleware.js +77 -83
  115. package/esm/util/retry/index.d.ts +3 -3
  116. package/esm/util/retry/index.js +50 -50
  117. package/esm/util/retry/lib/retry.d.ts +3 -3
  118. package/esm/util/retry/lib/retry.js +35 -39
  119. package/esm/util/retry/lib/retryOperation.d.ts +27 -27
  120. package/esm/util/retry/lib/retryOperation.js +126 -132
  121. package/package.json +12 -32
@@ -1,197 +1,202 @@
1
- "use strict";
2
- var __extends = (this && this.__extends) || (function () {
3
- var extendStatics = function (d, b) {
4
- extendStatics = Object.setPrototypeOf ||
5
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
- return extendStatics(d, b);
8
- };
9
- return function (d, b) {
10
- if (typeof b !== "function" && b !== null)
11
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
- extendStatics(d, b);
13
- function __() { this.constructor = d; }
14
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
- };
16
- })();
17
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
18
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
19
- return new (P || (P = Promise))(function (resolve, reject) {
20
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
21
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
22
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
23
- step((generator = generator.apply(thisArg, _arguments || [])).next());
24
- });
25
- };
26
- var __generator = (this && this.__generator) || function (thisArg, body) {
27
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
28
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
29
- function verb(n) { return function (v) { return step([n, v]); }; }
30
- function step(op) {
31
- if (f) throw new TypeError("Generator is already executing.");
32
- while (_) try {
33
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
34
- if (y = 0, t) op = [op[0] & 2, t.value];
35
- switch (op[0]) {
36
- case 0: case 1: t = op; break;
37
- case 4: _.label++; return { value: op[1], done: false };
38
- case 5: _.label++; y = op[1]; op = [0]; continue;
39
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
40
- default:
41
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
42
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
43
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
44
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
45
- if (t[2]) _.ops.pop();
46
- _.trys.pop(); continue;
47
- }
48
- op = body.call(thisArg, _);
49
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
50
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
51
- }
52
- };
53
- Object.defineProperty(exports, "__esModule", { value: true });
54
- var Utils = require("../Utils");
55
- var Utils_1 = require("../Utils");
56
- var ApiUtils_1 = require("../ApiUtils");
57
- var FetchError = /** @class */ (function (_super) {
58
- __extends(FetchError, _super);
59
- function FetchError() {
60
- return _super !== null && _super.apply(this, arguments) || this;
61
- }
62
- return FetchError;
63
- }(Error));
64
- var FetchRequestBackend = /** @class */ (function () {
65
- function FetchRequestBackend(fetchLibrary) {
66
- this.fetch = (0, Utils_1.getGlobalFetch)();
67
- this.id = "fetch";
68
- if (fetchLibrary !== undefined) {
69
- this.fetch = fetchLibrary;
70
- // otherwise window throws illegal invocation
71
- if (fetchLibrary === (0, Utils_1.getGlobalFetch)()) {
72
- this.fetch = fetchLibrary.bind((0, Utils_1.getGlobal)());
73
- }
74
- }
75
- }
76
- FetchRequestBackend.prototype.extractResponseFromError = function (error) {
77
- return __awaiter(this, void 0, void 0, function () {
78
- var fetchError;
79
- return __generator(this, function (_a) {
80
- if ("response" in error) {
81
- fetchError = error;
82
- return [2 /*return*/, fetchError.response ? fetchError.response : null];
83
- }
84
- return [2 /*return*/, undefined];
85
- });
86
- });
87
- };
88
- FetchRequestBackend.prototype.convertResponse = function (context, response) {
89
- return __awaiter(this, void 0, void 0, function () {
90
- var contentType, responseType, _a, data, status, headers, error_1, processedHeaders;
91
- return __generator(this, function (_b) {
92
- switch (_b.label) {
93
- case 0:
94
- contentType = response.headers.get("Content-Type");
95
- responseType = (0, ApiUtils_1.inferResponseType)(contentType);
96
- if (!!response.__text) return [3 /*break*/, 2];
97
- _a = response;
98
- return [4 /*yield*/, response.clone().text()];
99
- case 1:
100
- _a.__text = _b.sent();
101
- _b.label = 2;
102
- case 2:
103
- data = response.__text;
104
- status = response.status, headers = response.headers;
105
- _b.label = 3;
106
- case 3:
107
- _b.trys.push([3, 7, , 8]);
108
- if (!(responseType === "arraybuffer")) return [3 /*break*/, 5];
109
- return [4 /*yield*/, response.clone().arrayBuffer()];
110
- case 4:
111
- data = _b.sent();
112
- return [3 /*break*/, 6];
113
- case 5:
114
- if (responseType === "json") {
115
- data = JSON.parse(response.__text);
116
- }
117
- _b.label = 6;
118
- case 6: return [3 /*break*/, 8];
119
- case 7:
120
- error_1 = _b.sent();
121
- throw Object.assign(new Error("[api-def] Invalid '".concat(context.responseType, "' response, got: '").concat(response.__text, "'")), {
122
- response: response,
123
- });
124
- case 8:
125
- processedHeaders = {};
126
- headers.forEach(function (value, key) {
127
- processedHeaders[key] = value;
128
- });
129
- return [2 /*return*/, {
130
- __lowercaseHeaders: processedHeaders,
131
- method: context.method,
132
- url: response.url,
133
- data: data,
134
- status: status,
135
- headers: processedHeaders,
136
- }];
137
- }
138
- });
139
- });
140
- };
141
- FetchRequestBackend.prototype.makeRequest = function (context) {
142
- if (!this.fetch) {
143
- throw new Error("[api-def] No fetch impl was provided to FetchRequestBackend");
144
- }
145
- var computedConfig = context.computedConfig;
146
- // abort controller is a newer feature than fetch
147
- var abortController = AbortController && new AbortController();
148
- var abortSignal = abortController ? abortController.signal : undefined;
149
- var softAbort = false;
150
- var responded = false;
151
- var body = context.getParsedBody();
152
- var bodyJsonify = body !== null && typeof body === "object";
153
- var headers = Utils.assign({
154
- // logic from axios
155
- "Content-Type": bodyJsonify ? "application/json;charset=utf-8" : "application/x-www-form-urlencoded",
156
- }, computedConfig.headers);
157
- var parsedHeaders = Object.keys(headers).reduce(function (parsedHeaders, key) {
158
- var value = headers[key];
159
- if (value !== undefined) {
160
- parsedHeaders[key] = value;
161
- }
162
- return parsedHeaders;
163
- }, {});
164
- var url = context.requestUrl;
165
- var promise = this.fetch(url.href, {
166
- method: context.method.toUpperCase(),
167
- body: bodyJsonify ? JSON.stringify(body) : body,
168
- headers: parsedHeaders,
169
- mode: "cors",
170
- signal: abortSignal,
171
- }).then(function (response) {
172
- responded = true;
173
- if (!response.ok) {
174
- var error = new FetchError("Fetch failed");
175
- error.response = response;
176
- throw error;
177
- }
178
- if (softAbort) {
179
- throw new Error("[api-def] Request was aborted");
180
- }
181
- return response;
182
- });
183
- return {
184
- promise: promise,
185
- canceler: abortSignal
186
- ? function () { return !responded && abortController.abort(); }
187
- : function () {
188
- softAbort = true;
189
- },
190
- };
191
- };
192
- FetchRequestBackend.prototype.getErrorInfo = function (error, response) {
193
- return undefined;
194
- };
195
- return FetchRequestBackend;
196
- }());
197
- exports.default = FetchRequestBackend;
1
+ "use strict";
2
+ var __extends = (this && this.__extends) || (function () {
3
+ var extendStatics = function (d, b) {
4
+ extendStatics = Object.setPrototypeOf ||
5
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ if (typeof b !== "function" && b !== null)
11
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
+ extendStatics(d, b);
13
+ function __() { this.constructor = d; }
14
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
+ };
16
+ })();
17
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
18
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
19
+ return new (P || (P = Promise))(function (resolve, reject) {
20
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
21
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
22
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
23
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
24
+ });
25
+ };
26
+ var __generator = (this && this.__generator) || function (thisArg, body) {
27
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
28
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
29
+ function verb(n) { return function (v) { return step([n, v]); }; }
30
+ function step(op) {
31
+ if (f) throw new TypeError("Generator is already executing.");
32
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
33
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
34
+ if (y = 0, t) op = [op[0] & 2, t.value];
35
+ switch (op[0]) {
36
+ case 0: case 1: t = op; break;
37
+ case 4: _.label++; return { value: op[1], done: false };
38
+ case 5: _.label++; y = op[1]; op = [0]; continue;
39
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
40
+ default:
41
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
42
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
43
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
44
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
45
+ if (t[2]) _.ops.pop();
46
+ _.trys.pop(); continue;
47
+ }
48
+ op = body.call(thisArg, _);
49
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
50
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
51
+ }
52
+ };
53
+ Object.defineProperty(exports, "__esModule", { value: true });
54
+ var ApiUtils_1 = require("../ApiUtils");
55
+ var RequestError_1 = require("../RequestError");
56
+ var Utils = require("../Utils");
57
+ var Utils_1 = require("../Utils");
58
+ var FetchError = /** @class */ (function (_super) {
59
+ __extends(FetchError, _super);
60
+ function FetchError() {
61
+ return _super !== null && _super.apply(this, arguments) || this;
62
+ }
63
+ return FetchError;
64
+ }(Error));
65
+ var FetchRequestBackend = /** @class */ (function () {
66
+ function FetchRequestBackend(fetchLibrary) {
67
+ this.fetch = (0, Utils_1.getGlobalFetch)();
68
+ this.id = "fetch";
69
+ if (fetchLibrary !== undefined) {
70
+ this.fetch = fetchLibrary;
71
+ // otherwise window throws illegal invocation
72
+ if (fetchLibrary === (0, Utils_1.getGlobalFetch)()) {
73
+ this.fetch = fetchLibrary.bind((0, Utils_1.getGlobal)());
74
+ }
75
+ }
76
+ }
77
+ FetchRequestBackend.prototype.extractResponseFromError = function (error) {
78
+ return __awaiter(this, void 0, void 0, function () {
79
+ var fetchError;
80
+ return __generator(this, function (_a) {
81
+ if ("response" in error) {
82
+ fetchError = error;
83
+ return [2 /*return*/, fetchError.response ? fetchError.response : null];
84
+ }
85
+ return [2 /*return*/, undefined];
86
+ });
87
+ });
88
+ };
89
+ FetchRequestBackend.prototype.convertResponse = function (context, response) {
90
+ var _a;
91
+ return __awaiter(this, void 0, void 0, function () {
92
+ var status, headers, processedHeaders, convertedResponse, responseType, text, data, error_1;
93
+ return __generator(this, function (_b) {
94
+ switch (_b.label) {
95
+ case 0:
96
+ status = response.status, headers = response.headers;
97
+ processedHeaders = {};
98
+ headers.forEach(function (value, key) {
99
+ processedHeaders[key] = value;
100
+ });
101
+ convertedResponse = {
102
+ __lowercaseHeaders: processedHeaders,
103
+ method: context.method,
104
+ url: response.url,
105
+ data: undefined,
106
+ status: status,
107
+ headers: processedHeaders,
108
+ };
109
+ responseType = (_a = context.responseType) !== null && _a !== void 0 ? _a : (0, ApiUtils_1.inferResponseType)(response.headers.get("Content-Type"));
110
+ _b.label = 1;
111
+ case 1:
112
+ _b.trys.push([1, 7, , 8]);
113
+ if (!(responseType === "arraybuffer")) return [3 /*break*/, 3];
114
+ return [4 /*yield*/, response.arrayBuffer()];
115
+ case 2:
116
+ data = _b.sent();
117
+ return [3 /*break*/, 6];
118
+ case 3:
119
+ if (!(responseType === "json")) return [3 /*break*/, 5];
120
+ return [4 /*yield*/, response.text()];
121
+ case 4:
122
+ text = _b.sent();
123
+ data = JSON.parse(text);
124
+ return [3 /*break*/, 6];
125
+ case 5:
126
+ data = response.text();
127
+ _b.label = 6;
128
+ case 6: return [3 /*break*/, 8];
129
+ case 7:
130
+ error_1 = _b.sent();
131
+ throw (0, RequestError_1.convertToRequestError)({
132
+ error: Object.assign(new Error("[api-def] Failed to parse response as '".concat(responseType, "'").concat(text ? ", got: ".concat(text) : "")), {
133
+ cause: error_1,
134
+ }),
135
+ code: RequestError_1.RequestErrorCode.REQUEST_MISMATCH_RESPONSE_TYPE,
136
+ context: context,
137
+ response: convertedResponse,
138
+ });
139
+ case 8:
140
+ convertedResponse.data = data;
141
+ return [2 /*return*/, convertedResponse];
142
+ }
143
+ });
144
+ });
145
+ };
146
+ FetchRequestBackend.prototype.makeRequest = function (context) {
147
+ if (!this.fetch) {
148
+ throw new Error("[api-def] No fetch impl was provided to FetchRequestBackend");
149
+ }
150
+ var computedConfig = context.computedConfig;
151
+ // abort controller is a newer feature than fetch
152
+ var abortController = AbortController && new AbortController();
153
+ var abortSignal = abortController ? abortController.signal : undefined;
154
+ var softAbort = false;
155
+ var responded = false;
156
+ var body = context.getParsedBody();
157
+ var bodyJsonify = body !== null && typeof body === "object";
158
+ var headers = Utils.assign({
159
+ // logic from axios
160
+ "Content-Type": bodyJsonify ? "application/json;charset=utf-8" : "application/x-www-form-urlencoded",
161
+ }, computedConfig.headers);
162
+ var parsedHeaders = Object.keys(headers).reduce(function (parsedHeaders, key) {
163
+ var value = headers[key];
164
+ if (value !== undefined) {
165
+ parsedHeaders[key] = value;
166
+ }
167
+ return parsedHeaders;
168
+ }, {});
169
+ var url = context.requestUrl;
170
+ var promise = this.fetch(url.href, {
171
+ method: context.method.toUpperCase(),
172
+ body: bodyJsonify ? JSON.stringify(body) : body,
173
+ headers: parsedHeaders,
174
+ mode: "cors",
175
+ signal: abortSignal,
176
+ }).then(function (response) {
177
+ responded = true;
178
+ if (!response.ok) {
179
+ var error = new FetchError("Fetch failed");
180
+ error.response = response;
181
+ throw error;
182
+ }
183
+ if (softAbort) {
184
+ throw new Error("[api-def] Request was aborted");
185
+ }
186
+ return response;
187
+ });
188
+ return {
189
+ promise: promise,
190
+ canceler: abortSignal
191
+ ? function () { return !responded && abortController.abort(); }
192
+ : function () {
193
+ softAbort = true;
194
+ },
195
+ };
196
+ };
197
+ FetchRequestBackend.prototype.getErrorInfo = function (error, response) {
198
+ return undefined;
199
+ };
200
+ return FetchRequestBackend;
201
+ }());
202
+ exports.default = FetchRequestBackend;
@@ -1,11 +1,11 @@
1
- import RequestBackend, { RequestBackendErrorInfo, RequestOperation } from "./RequestBackend";
2
- import { ApiResponse } from "../ApiTypes";
3
- import RequestContext from "../RequestContext";
4
- export default class MockRequestBackend implements RequestBackend<ApiResponse> {
5
- readonly id = "mock";
6
- convertResponse<T>(context: RequestContext, response: ApiResponse, error?: boolean): Promise<ApiResponse<T>>;
7
- extractResponseFromError(error: Error): Promise<ApiResponse | null | undefined>;
8
- private runRequest;
9
- makeRequest(context: RequestContext): RequestOperation<ApiResponse>;
10
- getErrorInfo(error: Error, response: ApiResponse | undefined | null): RequestBackendErrorInfo | undefined;
11
- }
1
+ import { ApiResponse } from "../ApiTypes";
2
+ import RequestContext from "../RequestContext";
3
+ import RequestBackend, { RequestBackendErrorInfo, RequestOperation } from "./RequestBackend";
4
+ export default class MockRequestBackend implements RequestBackend<ApiResponse> {
5
+ readonly id = "mock";
6
+ convertResponse<T>(context: RequestContext, response: ApiResponse, error?: boolean): Promise<ApiResponse<T>>;
7
+ extractResponseFromError(error: Error): Promise<ApiResponse | null | undefined>;
8
+ private runRequest;
9
+ makeRequest(context: RequestContext): RequestOperation<ApiResponse>;
10
+ getErrorInfo(error: Error, response: ApiResponse | undefined | null): RequestBackendErrorInfo | undefined;
11
+ }