api-def 0.6.0-alpha13 → 0.6.0-alpha16
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.
- package/cjs/Requester.js +11 -10
- package/cjs/backend/AxiosRequestBackend.d.ts +2 -2
- package/cjs/backend/AxiosRequestBackend.js +1 -0
- package/cjs/backend/FetchRequestBackend.d.ts +2 -2
- package/cjs/backend/RequestBackend.d.ts +4 -1
- package/esm/Requester.js +11 -10
- package/esm/backend/AxiosRequestBackend.d.ts +2 -2
- package/esm/backend/AxiosRequestBackend.js +1 -0
- package/esm/backend/FetchRequestBackend.d.ts +2 -2
- package/esm/backend/RequestBackend.d.ts +4 -1
- package/package.json +1 -1
package/cjs/Requester.js
CHANGED
|
@@ -211,7 +211,7 @@ var makeRequest = function (context) { return __awaiter(void 0, void 0, void 0,
|
|
|
211
211
|
});
|
|
212
212
|
}); };
|
|
213
213
|
var parseResponse = function (context, response, error) { return __awaiter(void 0, void 0, void 0, function () {
|
|
214
|
-
var
|
|
214
|
+
var parsedResponse_1, contentType, inferredResponseType, data, decodedData;
|
|
215
215
|
var _a;
|
|
216
216
|
return __generator(this, function (_b) {
|
|
217
217
|
switch (_b.label) {
|
|
@@ -219,12 +219,13 @@ var parseResponse = function (context, response, error) { return __awaiter(void
|
|
|
219
219
|
if (!response) return [3 /*break*/, 2];
|
|
220
220
|
return [4 /*yield*/, context.backend.convertResponse(context, response)];
|
|
221
221
|
case 1:
|
|
222
|
-
|
|
222
|
+
parsedResponse_1 = _b.sent();
|
|
223
223
|
// lowercase all header names
|
|
224
|
-
|
|
225
|
-
headers[header.toLowerCase()] =
|
|
224
|
+
parsedResponse_1.headers = parsedResponse_1.__lowercaseHeaders || Object.keys(parsedResponse_1.headers).reduce(function (headers, header) {
|
|
225
|
+
headers[header.toLowerCase()] = parsedResponse_1.headers[header];
|
|
226
|
+
return headers;
|
|
226
227
|
}, {});
|
|
227
|
-
contentType =
|
|
228
|
+
contentType = parsedResponse_1.headers["content-type"];
|
|
228
229
|
inferredResponseType = ApiUtils_1.inferResponseType(contentType);
|
|
229
230
|
if (!error) {
|
|
230
231
|
// expand to array buffer once we support that in inferResponseType
|
|
@@ -232,13 +233,13 @@ var parseResponse = function (context, response, error) { return __awaiter(void
|
|
|
232
233
|
throw RequestError_1.convertToRequestError({
|
|
233
234
|
error: new Error("[api-def] Expected '" + context.responseType + "' response, got '" + inferredResponseType + "' (from 'Content-Type' of '" + contentType + "')"),
|
|
234
235
|
code: RequestError_1.RequestErrorCode.REQUEST_MISMATCH_RESPONSE_TYPE,
|
|
235
|
-
response:
|
|
236
|
+
response: parsedResponse_1,
|
|
236
237
|
});
|
|
237
238
|
}
|
|
238
239
|
// transform arrayBuffer to json
|
|
239
240
|
if (inferredResponseType === "arraybuffer" && context.responseType === "json") {
|
|
240
|
-
if (
|
|
241
|
-
typeof
|
|
241
|
+
if (parsedResponse_1.data &&
|
|
242
|
+
typeof parsedResponse_1.data === "object") {
|
|
242
243
|
data = response.data;
|
|
243
244
|
if (((_a = data.constructor) === null || _a === void 0 ? void 0 : _a.name) === "ArrayBuffer") {
|
|
244
245
|
try {
|
|
@@ -249,14 +250,14 @@ var parseResponse = function (context, response, error) { return __awaiter(void
|
|
|
249
250
|
throw RequestError_1.convertToRequestError({
|
|
250
251
|
error: new Error("[api-def] Expected '" + context.responseType + "' response, got '" + inferredResponseType + "' (from 'Content-Type' of '" + contentType + "')"),
|
|
251
252
|
code: RequestError_1.RequestErrorCode.REQUEST_MISMATCH_RESPONSE_TYPE,
|
|
252
|
-
response:
|
|
253
|
+
response: parsedResponse_1,
|
|
253
254
|
});
|
|
254
255
|
}
|
|
255
256
|
}
|
|
256
257
|
}
|
|
257
258
|
}
|
|
258
259
|
}
|
|
259
|
-
return [2 /*return*/,
|
|
260
|
+
return [2 /*return*/, parsedResponse_1];
|
|
260
261
|
case 2: return [2 /*return*/, response];
|
|
261
262
|
}
|
|
262
263
|
});
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import RequestBackend, { RequestBackendErrorInfo, RequestOperation } from "./RequestBackend";
|
|
1
|
+
import RequestBackend, { ConvertedApiResponse, RequestBackendErrorInfo, RequestOperation } from "./RequestBackend";
|
|
2
2
|
import { ApiResponse } from "../ApiTypes";
|
|
3
3
|
import type { AxiosError, AxiosResponse } from "axios";
|
|
4
4
|
import RequestContext from "../RequestContext";
|
|
@@ -7,7 +7,7 @@ export default class AxiosRequestBackend implements RequestBackend<AxiosResponse
|
|
|
7
7
|
readonly id = "axios";
|
|
8
8
|
constructor(axiosLibrary: any);
|
|
9
9
|
extractResponseFromError(error: Error): Promise<AxiosResponse | null | undefined>;
|
|
10
|
-
convertResponse<T>(context: RequestContext, response: AxiosResponse): Promise<
|
|
10
|
+
convertResponse<T>(context: RequestContext, response: AxiosResponse): Promise<ConvertedApiResponse<T>>;
|
|
11
11
|
makeRequest(context: RequestContext): RequestOperation<AxiosResponse>;
|
|
12
12
|
getErrorInfo(error: Error, response: ApiResponse | undefined | null): RequestBackendErrorInfo | undefined;
|
|
13
13
|
}
|
|
@@ -61,6 +61,7 @@ var AxiosRequestBackend = /** @class */ (function () {
|
|
|
61
61
|
AxiosRequestBackend.prototype.convertResponse = function (context, response) {
|
|
62
62
|
return __awaiter(this, void 0, void 0, function () {
|
|
63
63
|
return __generator(this, function (_a) {
|
|
64
|
+
response.__lowercaseHeaders = response._lowerCaseResponseHeaders;
|
|
64
65
|
return [2 /*return*/, response];
|
|
65
66
|
});
|
|
66
67
|
});
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import RequestBackend, { RequestBackendErrorInfo, RequestOperation } from "./RequestBackend";
|
|
1
|
+
import RequestBackend, { ConvertedApiResponse, RequestBackendErrorInfo, RequestOperation } from "./RequestBackend";
|
|
2
2
|
import { ApiResponse } from "../ApiTypes";
|
|
3
3
|
import RequestContext from "../RequestContext";
|
|
4
4
|
import { Fetch } from "../Utils";
|
|
@@ -9,7 +9,7 @@ export default class FetchRequestBackend implements RequestBackend<Response> {
|
|
|
9
9
|
extractResponseFromError(error: Error): Promise<Response | null | undefined>;
|
|
10
10
|
convertResponse<T>(context: RequestContext, response: Response & {
|
|
11
11
|
__text?: string;
|
|
12
|
-
}): Promise<
|
|
12
|
+
}): Promise<ConvertedApiResponse<T>>;
|
|
13
13
|
makeRequest(context: RequestContext): RequestOperation<Response>;
|
|
14
14
|
getErrorInfo(error: Error, response: ApiResponse | undefined | null): RequestBackendErrorInfo | undefined;
|
|
15
15
|
}
|
|
@@ -7,10 +7,13 @@ export interface RequestOperation<R> {
|
|
|
7
7
|
export interface RequestBackendErrorInfo {
|
|
8
8
|
code: string;
|
|
9
9
|
}
|
|
10
|
+
export declare type ConvertedApiResponse<T> = ApiResponse<T> & {
|
|
11
|
+
__lowercaseHeaders?: any;
|
|
12
|
+
};
|
|
10
13
|
export default interface RequestBackend<R = any> {
|
|
11
14
|
readonly id: string;
|
|
12
15
|
makeRequest(context: RequestContext): RequestOperation<R>;
|
|
13
|
-
convertResponse<T>(context: RequestContext, response: R): Promise<
|
|
16
|
+
convertResponse<T>(context: RequestContext, response: R): Promise<ConvertedApiResponse<T>>;
|
|
14
17
|
extractResponseFromError(error: Error): Promise<R | null | undefined>;
|
|
15
18
|
getErrorInfo(error: Error, response: ApiResponse | undefined | null): RequestBackendErrorInfo | undefined;
|
|
16
19
|
}
|
package/esm/Requester.js
CHANGED
|
@@ -207,7 +207,7 @@ var makeRequest = function (context) { return __awaiter(void 0, void 0, void 0,
|
|
|
207
207
|
});
|
|
208
208
|
}); };
|
|
209
209
|
var parseResponse = function (context, response, error) { return __awaiter(void 0, void 0, void 0, function () {
|
|
210
|
-
var
|
|
210
|
+
var parsedResponse_1, contentType, inferredResponseType, data, decodedData;
|
|
211
211
|
var _a;
|
|
212
212
|
return __generator(this, function (_b) {
|
|
213
213
|
switch (_b.label) {
|
|
@@ -215,12 +215,13 @@ var parseResponse = function (context, response, error) { return __awaiter(void
|
|
|
215
215
|
if (!response) return [3 /*break*/, 2];
|
|
216
216
|
return [4 /*yield*/, context.backend.convertResponse(context, response)];
|
|
217
217
|
case 1:
|
|
218
|
-
|
|
218
|
+
parsedResponse_1 = _b.sent();
|
|
219
219
|
// lowercase all header names
|
|
220
|
-
|
|
221
|
-
headers[header.toLowerCase()] =
|
|
220
|
+
parsedResponse_1.headers = parsedResponse_1.__lowercaseHeaders || Object.keys(parsedResponse_1.headers).reduce(function (headers, header) {
|
|
221
|
+
headers[header.toLowerCase()] = parsedResponse_1.headers[header];
|
|
222
|
+
return headers;
|
|
222
223
|
}, {});
|
|
223
|
-
contentType =
|
|
224
|
+
contentType = parsedResponse_1.headers["content-type"];
|
|
224
225
|
inferredResponseType = inferResponseType(contentType);
|
|
225
226
|
if (!error) {
|
|
226
227
|
// expand to array buffer once we support that in inferResponseType
|
|
@@ -228,13 +229,13 @@ var parseResponse = function (context, response, error) { return __awaiter(void
|
|
|
228
229
|
throw convertToRequestError({
|
|
229
230
|
error: new Error("[api-def] Expected '" + context.responseType + "' response, got '" + inferredResponseType + "' (from 'Content-Type' of '" + contentType + "')"),
|
|
230
231
|
code: RequestErrorCode.REQUEST_MISMATCH_RESPONSE_TYPE,
|
|
231
|
-
response:
|
|
232
|
+
response: parsedResponse_1,
|
|
232
233
|
});
|
|
233
234
|
}
|
|
234
235
|
// transform arrayBuffer to json
|
|
235
236
|
if (inferredResponseType === "arraybuffer" && context.responseType === "json") {
|
|
236
|
-
if (
|
|
237
|
-
typeof
|
|
237
|
+
if (parsedResponse_1.data &&
|
|
238
|
+
typeof parsedResponse_1.data === "object") {
|
|
238
239
|
data = response.data;
|
|
239
240
|
if (((_a = data.constructor) === null || _a === void 0 ? void 0 : _a.name) === "ArrayBuffer") {
|
|
240
241
|
try {
|
|
@@ -245,14 +246,14 @@ var parseResponse = function (context, response, error) { return __awaiter(void
|
|
|
245
246
|
throw convertToRequestError({
|
|
246
247
|
error: new Error("[api-def] Expected '" + context.responseType + "' response, got '" + inferredResponseType + "' (from 'Content-Type' of '" + contentType + "')"),
|
|
247
248
|
code: RequestErrorCode.REQUEST_MISMATCH_RESPONSE_TYPE,
|
|
248
|
-
response:
|
|
249
|
+
response: parsedResponse_1,
|
|
249
250
|
});
|
|
250
251
|
}
|
|
251
252
|
}
|
|
252
253
|
}
|
|
253
254
|
}
|
|
254
255
|
}
|
|
255
|
-
return [2 /*return*/,
|
|
256
|
+
return [2 /*return*/, parsedResponse_1];
|
|
256
257
|
case 2: return [2 /*return*/, response];
|
|
257
258
|
}
|
|
258
259
|
});
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import RequestBackend, { RequestBackendErrorInfo, RequestOperation } from "./RequestBackend";
|
|
1
|
+
import RequestBackend, { ConvertedApiResponse, RequestBackendErrorInfo, RequestOperation } from "./RequestBackend";
|
|
2
2
|
import { ApiResponse } from "../ApiTypes";
|
|
3
3
|
import type { AxiosError, AxiosResponse } from "axios";
|
|
4
4
|
import RequestContext from "../RequestContext";
|
|
@@ -7,7 +7,7 @@ export default class AxiosRequestBackend implements RequestBackend<AxiosResponse
|
|
|
7
7
|
readonly id = "axios";
|
|
8
8
|
constructor(axiosLibrary: any);
|
|
9
9
|
extractResponseFromError(error: Error): Promise<AxiosResponse | null | undefined>;
|
|
10
|
-
convertResponse<T>(context: RequestContext, response: AxiosResponse): Promise<
|
|
10
|
+
convertResponse<T>(context: RequestContext, response: AxiosResponse): Promise<ConvertedApiResponse<T>>;
|
|
11
11
|
makeRequest(context: RequestContext): RequestOperation<AxiosResponse>;
|
|
12
12
|
getErrorInfo(error: Error, response: ApiResponse | undefined | null): RequestBackendErrorInfo | undefined;
|
|
13
13
|
}
|
|
@@ -57,6 +57,7 @@ var AxiosRequestBackend = /** @class */ (function () {
|
|
|
57
57
|
AxiosRequestBackend.prototype.convertResponse = function (context, response) {
|
|
58
58
|
return __awaiter(this, void 0, void 0, function () {
|
|
59
59
|
return __generator(this, function (_a) {
|
|
60
|
+
response.__lowercaseHeaders = response._lowerCaseResponseHeaders;
|
|
60
61
|
return [2 /*return*/, response];
|
|
61
62
|
});
|
|
62
63
|
});
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import RequestBackend, { RequestBackendErrorInfo, RequestOperation } from "./RequestBackend";
|
|
1
|
+
import RequestBackend, { ConvertedApiResponse, RequestBackendErrorInfo, RequestOperation } from "./RequestBackend";
|
|
2
2
|
import { ApiResponse } from "../ApiTypes";
|
|
3
3
|
import RequestContext from "../RequestContext";
|
|
4
4
|
import { Fetch } from "../Utils";
|
|
@@ -9,7 +9,7 @@ export default class FetchRequestBackend implements RequestBackend<Response> {
|
|
|
9
9
|
extractResponseFromError(error: Error): Promise<Response | null | undefined>;
|
|
10
10
|
convertResponse<T>(context: RequestContext, response: Response & {
|
|
11
11
|
__text?: string;
|
|
12
|
-
}): Promise<
|
|
12
|
+
}): Promise<ConvertedApiResponse<T>>;
|
|
13
13
|
makeRequest(context: RequestContext): RequestOperation<Response>;
|
|
14
14
|
getErrorInfo(error: Error, response: ApiResponse | undefined | null): RequestBackendErrorInfo | undefined;
|
|
15
15
|
}
|
|
@@ -7,10 +7,13 @@ export interface RequestOperation<R> {
|
|
|
7
7
|
export interface RequestBackendErrorInfo {
|
|
8
8
|
code: string;
|
|
9
9
|
}
|
|
10
|
+
export declare type ConvertedApiResponse<T> = ApiResponse<T> & {
|
|
11
|
+
__lowercaseHeaders?: any;
|
|
12
|
+
};
|
|
10
13
|
export default interface RequestBackend<R = any> {
|
|
11
14
|
readonly id: string;
|
|
12
15
|
makeRequest(context: RequestContext): RequestOperation<R>;
|
|
13
|
-
convertResponse<T>(context: RequestContext, response: R): Promise<
|
|
16
|
+
convertResponse<T>(context: RequestContext, response: R): Promise<ConvertedApiResponse<T>>;
|
|
14
17
|
extractResponseFromError(error: Error): Promise<R | null | undefined>;
|
|
15
18
|
getErrorInfo(error: Error, response: ApiResponse | undefined | null): RequestBackendErrorInfo | undefined;
|
|
16
19
|
}
|