94 lines
3.1 KiB
TypeScript
94 lines
3.1 KiB
TypeScript
/* @ts-nocheck */
|
|
/* eslint-disable */
|
|
/* @noformat */
|
|
/* @formatter:off */
|
|
/**
|
|
* Generated by ng-openapi
|
|
* Generated provider functions for easy setup
|
|
* Do not edit this file manually
|
|
*/
|
|
import { EnvironmentProviders, Provider, makeEnvironmentProviders } from "@angular/core";
|
|
import { HTTP_INTERCEPTORS, HttpInterceptor } from "@angular/common/http";
|
|
import { BASE_PATH_DEFAULT, HTTP_INTERCEPTORS_DEFAULT } from "./tokens";
|
|
import { DefaultBaseInterceptor } from "./utils/base-interceptor";
|
|
import { DateInterceptor } from "./utils/date-transformer";
|
|
|
|
/** Configuration options for default client */
|
|
export interface DefaultConfig {
|
|
/** Base API URL */
|
|
basePath: string;
|
|
/** Enable automatic date transformation (default: true) */
|
|
enableDateTransform?: boolean;
|
|
/** Array of HTTP interceptor classes to apply to this client */
|
|
interceptors?: (new (...args: HttpInterceptor[]) => HttpInterceptor)[];
|
|
}
|
|
|
|
/** Provides configuration for default client */
|
|
/** */
|
|
/** @example */
|
|
/** ```typescript */
|
|
/** // In your app.config.ts */
|
|
/** import { provideDefaultClient } from './api/providers'; */
|
|
/** */
|
|
/** export const appConfig: ApplicationConfig = { */
|
|
/** providers: [ */
|
|
/** provideDefaultClient({ */
|
|
/** basePath: 'https://api.example.com', */
|
|
/** interceptors: [AuthInterceptor, LoggingInterceptor] // Classes, not instances */
|
|
/** }), */
|
|
/** // other providers... */
|
|
/** ] */
|
|
/** }; */
|
|
/** ``` */
|
|
export function provideDefaultClient(config: DefaultConfig): EnvironmentProviders {
|
|
|
|
const providers: Provider[] = [
|
|
// Base path token for this client
|
|
{
|
|
provide: BASE_PATH_DEFAULT,
|
|
useValue: config.basePath
|
|
},
|
|
// Base interceptor that handles client-specific interceptors
|
|
{
|
|
provide: HTTP_INTERCEPTORS,
|
|
useClass: DefaultBaseInterceptor,
|
|
multi: true
|
|
}
|
|
];
|
|
|
|
// Add client-specific interceptor instances
|
|
if (config.interceptors && config.interceptors.length > 0) {
|
|
const interceptorInstances = config.interceptors.map(InterceptorClass => new InterceptorClass());
|
|
|
|
// Add date interceptor if enabled (default: true)
|
|
if (config.enableDateTransform !== false) {
|
|
interceptorInstances.unshift(new DateInterceptor());
|
|
}
|
|
|
|
providers.push({
|
|
provide: HTTP_INTERCEPTORS_DEFAULT,
|
|
useValue: interceptorInstances
|
|
});
|
|
} else if (config.enableDateTransform !== false) {
|
|
// Only date interceptor enabled
|
|
providers.push({
|
|
provide: HTTP_INTERCEPTORS_DEFAULT,
|
|
useValue: [new DateInterceptor()]
|
|
});
|
|
} else {
|
|
// No interceptors
|
|
providers.push({
|
|
provide: HTTP_INTERCEPTORS_DEFAULT,
|
|
useValue: []
|
|
});
|
|
}
|
|
|
|
return makeEnvironmentProviders(providers);
|
|
}
|
|
|
|
/** @deprecated Use provideDefaultClient instead for better clarity */
|
|
/** Provides configuration for the default client */
|
|
export function provideNgOpenapi(config: DefaultConfig): EnvironmentProviders {
|
|
return provideDefaultClient(config);
|
|
}
|