Skip to content

Commit 9268ad8

Browse files
committed
Merge remote-tracking branch 'loganbenjamin/master'
2 parents 59254d9 + 90f6c62 commit 9268ad8

13 files changed

+27
-7
lines changed

src/templates/core/ApiRequestOptions.hbs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ export type ApiRequestOptions = {
1010
readonly formData?: Record<string, any>;
1111
readonly body?: any;
1212
readonly mediaType?: string;
13+
readonly responseType?: 'blob';
1314
readonly responseHeader?: string;
1415
readonly errors?: Record<number, string>;
1516
};

src/templates/core/angular/sendRequest.hbs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,11 @@ export const sendRequest = <T>(
77
formData: FormData | undefined,
88
headers: HttpHeaders
99
): Observable<HttpResponse<T>> => {
10-
return http.request<T>(options.method, url, {
10+
return http.request(options.method, url, {
1111
headers,
1212
body: body ?? formData,
1313
withCredentials: config.WITH_CREDENTIALS,
1414
observe: 'response',
15+
responseType: options.responseType,
1516
});
1617
};

src/templates/core/axios/sendRequest.hbs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ const sendRequest = async <T>(
1515
data: body ?? formData,
1616
method: options.method,
1717
withCredentials: config.WITH_CREDENTIALS,
18+
responseType: options.responseType,
1819
cancelToken: source.token,
1920
};
2021

src/templates/core/fetch/getResponseBody.hbs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
1-
const getResponseBody = async (response: Response): Promise<any> => {
1+
const getResponseBody = async (response: Response, options: ApiRequestOptions): Promise<any> => {
22
if (response.status !== 204) {
33
try {
44
const contentType = response.headers.get('Content-Type');
55
if (contentType) {
66
const isJSON = contentType.toLowerCase().startsWith('application/json');
77
if (isJSON) {
88
return await response.json();
9+
} else if (options.responseType === 'blob') {
10+
return await response.blob();
911
} else {
1012
return await response.text();
1113
}

src/templates/core/fetch/request.hbs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ export const request = <T>(config: OpenAPIConfig, options: ApiRequestOptions): C
7272

7373
if (!onCancel.isCancelled) {
7474
const response = await sendRequest(config, options, url, body, formData, headers, onCancel);
75-
const responseBody = await getResponseBody(response);
75+
const responseBody = await getResponseBody(response, options);
7676
const responseHeader = getResponseHeader(response, options.responseHeader);
7777

7878
const result: ApiResult = {

src/templates/core/node/getResponseBody.hbs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
1-
const getResponseBody = async (response: Response): Promise<any> => {
1+
const getResponseBody = async (response: Response, options: ApiRequestOptions): Promise<any> => {
22
if (response.status !== 204) {
33
try {
44
const contentType = response.headers.get('Content-Type');
55
if (contentType) {
66
const isJSON = contentType.toLowerCase().startsWith('application/json');
77
if (isJSON) {
88
return await response.json();
9+
} else if (options.responseType === 'blob') {
10+
return await response.blob();
911
} else {
1012
return await response.text();
1113
}

src/templates/core/node/request.hbs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ export const request = <T>(config: OpenAPIConfig, options: ApiRequestOptions): C
7575

7676
if (!onCancel.isCancelled) {
7777
const response = await sendRequest(options, url, body, formData, headers, onCancel);
78-
const responseBody = await getResponseBody(response);
78+
const responseBody = await getResponseBody(response, options);
7979
const responseHeader = getResponseHeader(response, options.responseHeader);
8080

8181
const result: ApiResult = {

src/templates/core/xhr/getResponseBody.hbs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
1-
const getResponseBody = (xhr: XMLHttpRequest): any => {
1+
const getResponseBody = (xhr: XMLHttpRequest, options: ApiRequestOptions): any => {
22
if (xhr.status !== 204) {
33
try {
44
const contentType = xhr.getResponseHeader('Content-Type');
55
if (contentType) {
66
const isJSON = contentType.toLowerCase().startsWith('application/json');
77
if (isJSON) {
88
return JSON.parse(xhr.responseText);
9+
} else if (options.responseType === 'blob') {
10+
return xhr.response;
911
} else {
1012
return xhr.responseText;
1113
}

src/templates/core/xhr/request.hbs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ export const request = <T>(config: OpenAPIConfig, options: ApiRequestOptions): C
7575

7676
if (!onCancel.isCancelled) {
7777
const response = await sendRequest(config, options, url, body, formData, headers, onCancel);
78-
const responseBody = getResponseBody(response);
78+
const responseBody = getResponseBody(response, options);
7979
const responseHeader = getResponseHeader(response, options.responseHeader);
8080

8181
const result: ApiResult = {

src/templates/core/xhr/sendRequest.hbs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ export const sendRequest = async (
1010
const xhr = new XMLHttpRequest();
1111
xhr.open(options.method, url, true);
1212
xhr.withCredentials = config.WITH_CREDENTIALS;
13+
xhr.responseType = options.responseType;
1314

1415
headers.forEach((value, key) => {
1516
xhr.setRequestHeader(key, value);

0 commit comments

Comments
 (0)