mirror of
https://github.com/Monadical-SAS/reflector.git
synced 2025-12-20 12:19:06 +00:00
38 lines
1.2 KiB
TypeScript
38 lines
1.2 KiB
TypeScript
import type { BaseHttpRequest } from "./core/BaseHttpRequest";
|
|
import type { OpenAPIConfig } from "./core/OpenAPI";
|
|
import { Interceptors } from "./core/OpenAPI";
|
|
import { AxiosHttpRequest } from "./core/AxiosHttpRequest";
|
|
|
|
import { DefaultService } from "./services.gen";
|
|
|
|
type HttpRequestConstructor = new (config: OpenAPIConfig) => BaseHttpRequest;
|
|
|
|
export class OpenApi {
|
|
public readonly default: DefaultService;
|
|
|
|
public readonly request: BaseHttpRequest;
|
|
|
|
constructor(
|
|
config?: Partial<OpenAPIConfig>,
|
|
HttpRequest: HttpRequestConstructor = AxiosHttpRequest,
|
|
) {
|
|
this.request = new HttpRequest({
|
|
BASE: config?.BASE ?? "",
|
|
VERSION: config?.VERSION ?? "0.1.0",
|
|
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,
|
|
interceptors: {
|
|
request: config?.interceptors?.request ?? new Interceptors(),
|
|
response: config?.interceptors?.response ?? new Interceptors(),
|
|
},
|
|
});
|
|
|
|
this.default = new DefaultService(this.request);
|
|
}
|
|
}
|