UNPKG

@opra/angular

Version:

Opra internationalization package

162 lines (156 loc) 6.24 kB
import * as Angular from '@angular/common/http'; import { HttpContext, HttpParams } from '@angular/common/http'; import { HttpBackend, HttpEvent, HttpResponse } from '@opra/client'; import { Observable } from 'rxjs'; import { StrictOmit } from 'ts-gems'; import * as i0 from '@angular/core'; import { InjectionToken, NgModule, Type, ModuleWithProviders } from '@angular/core'; /** * Angular specific implementation of {@link HttpBackend} using Angular's HttpClient. * * @class AngularBackend */ declare class AngularBackend extends HttpBackend { readonly httpClient: Angular.HttpClient; /** Default request options */ defaults: AngularBackend.RequestDefaults; /** * Creates a new instance of AngularBackend. * * @param httpClient The Angular HttpClient instance. * @param serviceUrl The base URL of the service. * @param options Configuration options. */ constructor(httpClient: Angular.HttpClient, serviceUrl: string, options?: AngularBackend.Options); /** * Handles the HTTP request using Angular's HttpClient. * * @param init The request initialization parameters. * @returns An observable of {@link HttpEvent}. */ handle(init: AngularBackend.RequestInit): Observable<HttpEvent>; /** * Sends the actual HTTP request. * * @param request The Angular HttpRequest instance. * @protected */ protected send(request: Angular.HttpRequest<any>): Observable<Angular.HttpEvent<unknown>>; /** * Prepares the request by applying defaults and handling body content. * * @param init The initial request parameters. * @returns The prepared request initialization parameters. * @protected */ protected prepareRequest(init: AngularBackend.RequestInit): AngularBackend.RequestInit; /** * Creates a {@link HttpResponse} instance. * * @param init The response initiator parameters. * @returns A new HttpResponse instance. * @protected */ protected createResponse(init: HttpResponse.Initiator): HttpResponse; /** * Parses the response body based on Content-Type. * * @param fetchResponse The response to parse. * @returns The parsed body. * @protected */ protected parseBody(fetchResponse: Response): Promise<any>; } /** * Namespace for {@link AngularBackend} related types and interfaces. * * @namespace AngularBackend */ declare namespace AngularBackend { /** Configuration options for AngularBackend */ interface Options extends HttpBackend.Options { /** Default request options */ defaults?: RequestDefaults; } /** Request initialization parameters for AngularBackend */ interface RequestInit extends HttpBackend.RequestInit { /** Angular HttpContext */ context?: HttpContext; /** Whether to report progress events */ reportProgress?: boolean; /** Angular HttpParams */ params?: HttpParams; /** The expected response type */ responseType?: 'arraybuffer' | 'blob' | 'json' | 'text'; /** Whether to send credentials with the request */ withCredentials?: boolean; } /** Request options subset for AngularBackend */ interface RequestOptions extends Pick<RequestInit, 'context' | 'reportProgress' | 'withCredentials'> { } /** Default request options for AngularBackend */ type RequestDefaults = StrictOmit<RequestOptions, 'context'> & { /** Default headers */ headers: Headers; /** Default URL parameters */ params: URLSearchParams; }; } type OpraClientModuleOptions = AngularBackend.Options & { serviceUrl: string; token?: string | InjectionToken<any>; }; type _OpraClientModuleOptions = StrictOmit<OpraClientModuleOptions, 'token'>; interface OpraModuleOptionsFactory { createOptions(): Promise<_OpraClientModuleOptions> | _OpraClientModuleOptions; } interface OpraClientModuleAsyncOptions extends Pick<NgModule, 'imports' | 'providers'> { token?: string | InjectionToken<any>; useExisting?: Type<OpraModuleOptionsFactory>; useClass?: Type<any>; useFactory?: (...args: any[]) => Promise<_OpraClientModuleOptions> | _OpraClientModuleOptions; deps?: any[]; } /** * Angular module for OPRA client. */ declare class OpraClientModule { /** * Registers a client provider. * * @param options Configuration options for the client. * @returns A ModuleWithProviders instance. */ static registerClient(options: OpraClientModuleOptions): ModuleWithProviders<OpraClientModule>; /** * Registers a service provider. * * @param serviceClass The service class to register. * @param options Configuration options for the service. * @returns A ModuleWithProviders instance. */ static registerService<T>(serviceClass: Type<T>, options: OpraClientModuleOptions): ModuleWithProviders<OpraClientModule>; /** * Registers a client provider asynchronously. * * @param options Asynchronous configuration options for the client. * @returns A ModuleWithProviders instance. */ static registerClientAsync(options: OpraClientModuleAsyncOptions): ModuleWithProviders<OpraClientModule>; /** * Registers a service provider asynchronously. * * @param serviceClass The service class to register. * @param options Asynchronous configuration options for the service. * @returns A ModuleWithProviders instance. */ static registerServiceAsync<T>(serviceClass: Type<T>, options: OpraClientModuleAsyncOptions): ModuleWithProviders<OpraClientModule>; private static _createAsyncProviders; private static _createAsyncOptionsProvider; static ɵfac: i0.ɵɵFactoryDeclaration<OpraClientModule, never>; static ɵmod: i0.ɵɵNgModuleDeclaration<OpraClientModule, never, never, never>; static ɵinj: i0.ɵɵInjectorDeclaration<OpraClientModule>; } declare const OPRA_CLIENT_MODULE_OPTIONS = "OPRA_CLIENT_MODULE_OPTIONS"; export { AngularBackend, OPRA_CLIENT_MODULE_OPTIONS, OpraClientModule }; export type { OpraClientModuleAsyncOptions, OpraClientModuleOptions, OpraModuleOptionsFactory };