mirror of
https://github.com/ferdikoomen/openapi-typescript-codegen.git
synced 2025-12-08 20:16:21 +00:00
- Added client and HttpRequest files
This commit is contained in:
parent
ae33149797
commit
d0900cee8c
39
src/templates/client.hbs
Normal file
39
src/templates/client.hbs
Normal file
@ -0,0 +1,39 @@
|
||||
{{>header}}
|
||||
|
||||
import type { BaseHttpRequest } from './core/BaseHttpRequest';
|
||||
import type { OpenAPIConfig } from './core/OpenAPI';
|
||||
import { {{{httpRequest}}} } from './core/{{{httpRequest}}}';
|
||||
{{#if services}}
|
||||
{{#each services}}
|
||||
import { {{{name}}} } from './services/{{{name}}}';
|
||||
{{/each}}
|
||||
{{/if}}
|
||||
|
||||
type HttpRequestConstructor = new (config: OpenAPIConfig) => BaseHttpRequest;
|
||||
|
||||
export class {{{clientName}}} {
|
||||
|
||||
{{#each services}}
|
||||
readonly {{{name}}}: {{{name}}};
|
||||
{{/each}}
|
||||
|
||||
readonly request: BaseHttpRequest;
|
||||
|
||||
constructor(config?: OpenAPIConfig, HttpRequest: HttpRequestConstructor = {{{httpRequest}}}) {
|
||||
this.request = new HttpRequest({
|
||||
BASE: config?.BASE ?? '{{{server}}}',
|
||||
VERSION: config?.VERSION ?? '{{{version}}}',
|
||||
WITH_CREDENTIALS: config?.WITH_CREDENTIALS ?? false,
|
||||
CREDENTIALS: config?.CREDENTIALS ?? 'include',
|
||||
TOKEN: config?.TOKEN,
|
||||
USERNAME: config?.USERNAME,
|
||||
PASSWORD: config?.PASSWORD,
|
||||
HEADERS: config?.HEADERS,
|
||||
ENCODE_PATH: config?.ENCODE_PATH,
|
||||
});
|
||||
|
||||
{{#each services}}
|
||||
this.{{{name}}} = new {{{name}}}(this.request);
|
||||
{{/each}}
|
||||
}
|
||||
}
|
||||
17
src/templates/core/BaseHttpRequest.hbs
Normal file
17
src/templates/core/BaseHttpRequest.hbs
Normal file
@ -0,0 +1,17 @@
|
||||
{{>header}}
|
||||
|
||||
import type { ApiRequestOptions } from './ApiRequestOptions';
|
||||
import type { CancelablePromise } from './CancelablePromise';
|
||||
import type { OpenAPIConfig } from './OpenAPI';
|
||||
|
||||
export class BaseHttpRequest {
|
||||
protected readonly config: OpenAPIConfig;
|
||||
|
||||
constructor(config: OpenAPIConfig) {
|
||||
this.config = config;
|
||||
}
|
||||
|
||||
public request<T>(options: ApiRequestOptions): CancelablePromise<T> {
|
||||
throw new Error('Not Implemented');
|
||||
}
|
||||
}
|
||||
22
src/templates/core/HttpRequest.hbs
Normal file
22
src/templates/core/HttpRequest.hbs
Normal file
@ -0,0 +1,22 @@
|
||||
{{>header}}
|
||||
|
||||
import type { BaseHttpRequest } from './BaseHttpRequest';
|
||||
import type { OpenAPIConfig } from './OpenAPI';
|
||||
import { request as __request } from './request';
|
||||
|
||||
export class {{HttpRequest}} extends BaseHttpRequest {
|
||||
|
||||
constructor(config: OpenAPIConfig) {
|
||||
super(config);
|
||||
}
|
||||
|
||||
/**
|
||||
* Request method
|
||||
* @param options The request options from the service
|
||||
* @returns CancelablePromise<T>
|
||||
* @throws ApiError
|
||||
*/
|
||||
public request<T>(options: ApiRequestOptions): CancelablePromise<T> {
|
||||
return __request(this.config, options);
|
||||
}
|
||||
}
|
||||
@ -59,7 +59,7 @@ import type { OpenAPIConfig } from './OpenAPI';
|
||||
|
||||
|
||||
/**
|
||||
* Request using axios client
|
||||
* Request method
|
||||
* @param config The OpenAPI configuration object
|
||||
* @param options The request options from the service
|
||||
* @returns CancelablePromise<T>
|
||||
@ -83,7 +83,7 @@ export const request = <T>(config: OpenAPIConfig, options: ApiRequestOptions): C
|
||||
ok: isSuccess(response.status),
|
||||
status: response.status,
|
||||
statusText: response.statusText,
|
||||
body: responseHeader || responseBody,
|
||||
body: responseHeader ?? responseBody,
|
||||
};
|
||||
|
||||
catchErrors(options, result);
|
||||
|
||||
@ -12,7 +12,7 @@ const sendRequest = async (
|
||||
const requestConfig: AxiosRequestConfig = {
|
||||
url,
|
||||
headers,
|
||||
data: body || formData,
|
||||
data: body ?? formData,
|
||||
method: options.method,
|
||||
withCredentials: config.WITH_CREDENTIALS,
|
||||
cancelToken: source.token,
|
||||
|
||||
@ -56,7 +56,7 @@ import type { OpenAPIConfig } from './OpenAPI';
|
||||
|
||||
|
||||
/**
|
||||
* Request using fetch client
|
||||
* Request method
|
||||
* @param config The OpenAPI configuration object
|
||||
* @param options The request options from the service
|
||||
* @returns CancelablePromise<T>
|
||||
@ -80,7 +80,7 @@ export const request = <T>(config: OpenAPIConfig, options: ApiRequestOptions): C
|
||||
ok: response.ok,
|
||||
status: response.status,
|
||||
statusText: response.statusText,
|
||||
body: responseHeader || responseBody,
|
||||
body: responseHeader ?? responseBody,
|
||||
};
|
||||
|
||||
catchErrors(options, result);
|
||||
|
||||
@ -11,7 +11,7 @@ export const sendRequest = async (
|
||||
|
||||
const request: RequestInit = {
|
||||
headers,
|
||||
body: body || formData,
|
||||
body: body ?? formData,
|
||||
method: options.method,
|
||||
signal: controller.signal,
|
||||
};
|
||||
|
||||
@ -60,7 +60,7 @@ import type { OpenAPIConfig } from './OpenAPI';
|
||||
|
||||
|
||||
/**
|
||||
* Request using node-fetch client
|
||||
* Request method
|
||||
* @param config The OpenAPI configuration object
|
||||
* @param options The request options from the service
|
||||
* @returns CancelablePromise<T>
|
||||
@ -84,7 +84,7 @@ export const request = <T>(config: OpenAPIConfig, options: ApiRequestOptions): C
|
||||
ok: response.ok,
|
||||
status: response.status,
|
||||
statusText: response.statusText,
|
||||
body: responseHeader || responseBody,
|
||||
body: responseHeader ?? responseBody,
|
||||
};
|
||||
|
||||
catchErrors(options, result);
|
||||
|
||||
@ -11,7 +11,7 @@ export const sendRequest = async (
|
||||
const request: RequestInit = {
|
||||
headers,
|
||||
method: options.method,
|
||||
body: body || formData,
|
||||
body: body ?? formData,
|
||||
signal: controller.signal,
|
||||
};
|
||||
|
||||
|
||||
@ -59,7 +59,7 @@ import type { OpenAPIConfig } from './OpenAPI';
|
||||
|
||||
|
||||
/**
|
||||
* Request using XHR client
|
||||
* Request method
|
||||
* @param config The OpenAPI configuration object
|
||||
* @param options The request options from the service
|
||||
* @returns CancelablePromise<T>
|
||||
@ -83,7 +83,7 @@ export const request = <T>(config: OpenAPIConfig, options: ApiRequestOptions): C
|
||||
ok: isSuccess(response.status),
|
||||
status: response.status,
|
||||
statusText: response.statusText,
|
||||
body: responseHeader || responseBody,
|
||||
body: responseHeader ?? responseBody,
|
||||
};
|
||||
|
||||
catchErrors(options, result);
|
||||
|
||||
@ -19,7 +19,7 @@ export const sendRequest = async (
|
||||
xhr.onload = () => resolve(xhr);
|
||||
xhr.onabort = () => reject(new Error('Request aborted'));
|
||||
xhr.onerror = () => reject(new Error('Network error'));
|
||||
xhr.send(body || formData);
|
||||
xhr.send(body ?? formData);
|
||||
|
||||
onCancel(() => xhr.abort());
|
||||
});
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user