Skip to content

Commit d0900ce

Browse files
committed
- Added client and HttpRequest files
1 parent ae33149 commit d0900ce

File tree

11 files changed

+90
-12
lines changed

11 files changed

+90
-12
lines changed

src/templates/client.hbs

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
{{>header}}
2+
3+
import type { BaseHttpRequest } from './core/BaseHttpRequest';
4+
import type { OpenAPIConfig } from './core/OpenAPI';
5+
import { {{{httpRequest}}} } from './core/{{{httpRequest}}}';
6+
{{#if services}}
7+
{{#each services}}
8+
import { {{{name}}} } from './services/{{{name}}}';
9+
{{/each}}
10+
{{/if}}
11+
12+
type HttpRequestConstructor = new (config: OpenAPIConfig) => BaseHttpRequest;
13+
14+
export class {{{clientName}}} {
15+
16+
{{#each services}}
17+
readonly {{{name}}}: {{{name}}};
18+
{{/each}}
19+
20+
readonly request: BaseHttpRequest;
21+
22+
constructor(config?: OpenAPIConfig, HttpRequest: HttpRequestConstructor = {{{httpRequest}}}) {
23+
this.request = new HttpRequest({
24+
BASE: config?.BASE ?? '{{{server}}}',
25+
VERSION: config?.VERSION ?? '{{{version}}}',
26+
WITH_CREDENTIALS: config?.WITH_CREDENTIALS ?? false,
27+
CREDENTIALS: config?.CREDENTIALS ?? 'include',
28+
TOKEN: config?.TOKEN,
29+
USERNAME: config?.USERNAME,
30+
PASSWORD: config?.PASSWORD,
31+
HEADERS: config?.HEADERS,
32+
ENCODE_PATH: config?.ENCODE_PATH,
33+
});
34+
35+
{{#each services}}
36+
this.{{{name}}} = new {{{name}}}(this.request);
37+
{{/each}}
38+
}
39+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
{{>header}}
2+
3+
import type { ApiRequestOptions } from './ApiRequestOptions';
4+
import type { CancelablePromise } from './CancelablePromise';
5+
import type { OpenAPIConfig } from './OpenAPI';
6+
7+
export class BaseHttpRequest {
8+
protected readonly config: OpenAPIConfig;
9+
10+
constructor(config: OpenAPIConfig) {
11+
this.config = config;
12+
}
13+
14+
public request<T>(options: ApiRequestOptions): CancelablePromise<T> {
15+
throw new Error('Not Implemented');
16+
}
17+
}

src/templates/core/HttpRequest.hbs

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
{{>header}}
2+
3+
import type { BaseHttpRequest } from './BaseHttpRequest';
4+
import type { OpenAPIConfig } from './OpenAPI';
5+
import { request as __request } from './request';
6+
7+
export class {{HttpRequest}} extends BaseHttpRequest {
8+
9+
constructor(config: OpenAPIConfig) {
10+
super(config);
11+
}
12+
13+
/**
14+
* Request method
15+
* @param options The request options from the service
16+
* @returns CancelablePromise<T>
17+
* @throws ApiError
18+
*/
19+
public request<T>(options: ApiRequestOptions): CancelablePromise<T> {
20+
return __request(this.config, options);
21+
}
22+
}

src/templates/core/axios/request.hbs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ import type { OpenAPIConfig } from './OpenAPI';
5959

6060

6161
/**
62-
* Request using axios client
62+
* Request method
6363
* @param config The OpenAPI configuration object
6464
* @param options The request options from the service
6565
* @returns CancelablePromise<T>
@@ -83,7 +83,7 @@ export const request = <T>(config: OpenAPIConfig, options: ApiRequestOptions): C
8383
ok: isSuccess(response.status),
8484
status: response.status,
8585
statusText: response.statusText,
86-
body: responseHeader || responseBody,
86+
body: responseHeader ?? responseBody,
8787
};
8888

8989
catchErrors(options, result);

src/templates/core/axios/sendRequest.hbs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ const sendRequest = async (
1212
const requestConfig: AxiosRequestConfig = {
1313
url,
1414
headers,
15-
data: body || formData,
15+
data: body ?? formData,
1616
method: options.method,
1717
withCredentials: config.WITH_CREDENTIALS,
1818
cancelToken: source.token,

src/templates/core/fetch/request.hbs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ import type { OpenAPIConfig } from './OpenAPI';
5656

5757

5858
/**
59-
* Request using fetch client
59+
* Request method
6060
* @param config The OpenAPI configuration object
6161
* @param options The request options from the service
6262
* @returns CancelablePromise<T>
@@ -80,7 +80,7 @@ export const request = <T>(config: OpenAPIConfig, options: ApiRequestOptions): C
8080
ok: response.ok,
8181
status: response.status,
8282
statusText: response.statusText,
83-
body: responseHeader || responseBody,
83+
body: responseHeader ?? responseBody,
8484
};
8585

8686
catchErrors(options, result);

src/templates/core/fetch/sendRequest.hbs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ export const sendRequest = async (
1111

1212
const request: RequestInit = {
1313
headers,
14-
body: body || formData,
14+
body: body ?? formData,
1515
method: options.method,
1616
signal: controller.signal,
1717
};

src/templates/core/node/request.hbs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ import type { OpenAPIConfig } from './OpenAPI';
6060

6161

6262
/**
63-
* Request using node-fetch client
63+
* Request method
6464
* @param config The OpenAPI configuration object
6565
* @param options The request options from the service
6666
* @returns CancelablePromise<T>
@@ -84,7 +84,7 @@ export const request = <T>(config: OpenAPIConfig, options: ApiRequestOptions): C
8484
ok: response.ok,
8585
status: response.status,
8686
statusText: response.statusText,
87-
body: responseHeader || responseBody,
87+
body: responseHeader ?? responseBody,
8888
};
8989

9090
catchErrors(options, result);

src/templates/core/node/sendRequest.hbs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ export const sendRequest = async (
1111
const request: RequestInit = {
1212
headers,
1313
method: options.method,
14-
body: body || formData,
14+
body: body ?? formData,
1515
signal: controller.signal,
1616
};
1717

src/templates/core/xhr/request.hbs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ import type { OpenAPIConfig } from './OpenAPI';
5959

6060

6161
/**
62-
* Request using XHR client
62+
* Request method
6363
* @param config The OpenAPI configuration object
6464
* @param options The request options from the service
6565
* @returns CancelablePromise<T>
@@ -83,7 +83,7 @@ export const request = <T>(config: OpenAPIConfig, options: ApiRequestOptions): C
8383
ok: isSuccess(response.status),
8484
status: response.status,
8585
statusText: response.statusText,
86-
body: responseHeader || responseBody,
86+
body: responseHeader ?? responseBody,
8787
};
8888

8989
catchErrors(options, result);

0 commit comments

Comments
 (0)