Skip to content

Commit f603bae

Browse files
committed
Append support type Blob for other clients
1 parent 162faa8 commit f603bae

File tree

8 files changed

+22
-5
lines changed

8 files changed

+22
-5
lines changed

src/templates/core/angular/sendRequest.hbs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,5 +12,6 @@ export const sendRequest = <T>(
1212
body: body ?? formData,
1313
withCredentials: config.WITH_CREDENTIALS,
1414
observe: 'response',
15+
responseType: options.type === 'Blob' ? 'blob' : undefined,
1516
});
1617
};

src/templates/core/axios/request.hbs

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

8181
if (!onCancel.isCancelled) {
8282
const response = await sendRequest<T>(config, options, url, body, formData, headers, onCancel, axiosClient);
83-
const responseBody = getResponseBody(response);
83+
const responseBody = getResponseBody(response, options);
8484
const responseHeader = getResponseHeader(response, options.responseHeader);
8585

8686
const result: ApiResult = {

src/templates/core/axios/sendRequest.hbs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,10 @@ export const sendRequest = async <T>(
2020
cancelToken: source.token,
2121
};
2222

23+
if(options.type === 'Blob') {
24+
requestConfig.responseType = 'blob';
25+
}
26+
2327
onCancel(() => source.cancel('The user aborted a request.'));
2428

2529
try {

src/templates/core/node/getResponseBody.hbs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
1-
export const getResponseBody = async (response: Response): Promise<any> => {
1+
export const getResponseBody = async (response: Response, options: ApiRequestOptions): Promise<any> => {
22
if (response.status !== 204) {
33
try {
4+
if(options.type === 'Blob') {
5+
return await response.blob();
6+
}
7+
48
const contentType = response.headers.get('Content-Type');
59
if (contentType) {
610
const jsonTypes = ['application/json', 'application/problem+json']

src/templates/core/node/request.hbs

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

7878
if (!onCancel.isCancelled) {
7979
const response = await sendRequest(options, url, body, formData, headers, onCancel);
80-
const responseBody = await getResponseBody(response);
80+
const responseBody = await getResponseBody(response, options);
8181
const responseHeader = getResponseHeader(response, options.responseHeader);
8282

8383
const result: ApiResult = {

src/templates/core/xhr/getResponseBody.hbs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
1-
export const getResponseBody = (xhr: XMLHttpRequest): any => {
1+
export const getResponseBody = (xhr: XMLHttpRequest, options: ApiRequestOptions): any => {
22
if (xhr.status !== 204) {
33
try {
4+
if(options.type === 'Blob') {
5+
return xhr.response;
6+
}
7+
48
const contentType = xhr.getResponseHeader('Content-Type');
59
if (contentType) {
610
const jsonTypes = ['application/json', 'application/problem+json']

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: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,10 @@ export const sendRequest = async (
1111
xhr.open(options.method, url, true);
1212
xhr.withCredentials = config.WITH_CREDENTIALS;
1313

14+
if(options.type === 'Blob') {
15+
xhr.responseType = 'blob';
16+
}
17+
1418
headers.forEach((value, key) => {
1519
xhr.setRequestHeader(key, value);
1620
});

0 commit comments

Comments
 (0)