@ministryofjustice/hmpps-digital-prison-reporting-frontend
Version:
The Digital Prison Reporting Frontend contains templates and code to help display data effectively in UI applications.
39 lines (36 loc) • 1.32 kB
TypeScript
import Agent from 'agentkeepalive';
import { Response } from 'express';
import { ApiConfig, GetRequest } from './types.d.js';
import Dict = NodeJS.Dict;
interface ResultWithHeaders<T> {
data: T;
headers: Dict<string>;
}
interface Request {
path: string;
query?: object | string;
headers?: Record<string, string>;
responseType?: string;
raw?: boolean;
}
interface RequestWithBody extends Request {
data?: Record<string, unknown> | string;
retry?: boolean;
}
declare class RestClient {
private readonly name;
private readonly config;
agent: Agent;
constructor(name: string, config: ApiConfig);
private apiUrl;
private timeoutConfig;
get<T>(request: GetRequest): Promise<T>;
getStream({ path, query, headers, token }: GetRequest, res: Response): Promise<void>;
private requestWithBody;
post<Response = unknown>(request: RequestWithBody, token: string): Promise<Response>;
getWithHeaders<T>({ path, query, headers, responseType, raw, token, }: GetRequest): Promise<ResultWithHeaders<T>>;
deleteWithHeaders<T>({ path, query, headers, responseType, raw, token, }: GetRequest): Promise<ResultWithHeaders<T>>;
delete<T>(request: GetRequest): Promise<T>;
}
export { RestClient, RestClient as default };
export type { ResultWithHeaders };