@ima/plugin-http-client
Version:
Generic http client for the IMA application framework.
48 lines • 1.94 kB
TypeScript
import type { Dependencies, HttpAgent, HttpAgentRequestOptions } from '@ima/core';
declare module '@ima/core' {
interface OCAliasMap {
HttpClientDefaultProcessors: Processor[];
}
}
import type { Processor, ProcessorParams } from './AbstractProcessor';
export declare const OPTION_TRANSFORM_PROCESSORS = "transformProcessors";
export type HttpClientRequestOptions = {
[OPTION_TRANSFORM_PROCESSORS]?: (processor: Processor[]) => Processor[];
} & Partial<HttpAgentRequestOptions>;
export type HttpClientRequestMethod = 'get' | 'put' | 'post' | 'patch' | 'delete';
export type HttpClientRequest = {
method: HttpClientRequestMethod;
url: string;
data?: Record<string, any>;
options?: HttpClientRequestOptions;
};
/**
* HttpClient use ima HttpAgent and adds support for processors.
*/
export declare class HttpClient {
#private;
static get $dependencies(): Dependencies;
constructor(http: HttpAgent, ...defaultProcessors: Processor[]);
/**
* Method registerProcessor added to defaultProcessors new processor
* @param processor
*/
registerProcessor(processor: Processor): void;
/**
* You can call request with additionalParams for processors. The request is processed by pre request processors method.
* If pre request processors don't return response, ima HttpAgent request is called.
* In the end the request is processed by post request processors method.
*
* @param request
* @param additionalParams
*/
request<B = any>(request: HttpClientRequest, additionalParams?: object): Promise<ProcessorParams<B>>;
invalidateCache(...args: Parameters<HttpAgent['invalidateCache']>): void;
/**
* Method for default transforming registered processors
* @param processors
* @returns Processor[]
*/
defaultTransformProcessors(processors: Processor[]): Processor[];
}
//# sourceMappingURL=HttpClient.d.ts.map