Files
lti-web-client/src/services/http/base.ts
T
2026-04-09 14:15:29 +07:00

30 lines
710 B
TypeScript

export type HttpMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE';
export type AuthMode = 'none' | 'cookie' | 'bearer';
export type RequestOptions<B = unknown> = {
method?: HttpMethod;
body?: B;
query?: Record<string, unknown>;
headers?: Record<string, string>;
auth?: AuthMode; // 'cookie' | 'bearer' | 'none'
token?: string; // required if auth === 'bearer'
timeoutMs?: number;
responseType?:
| 'arraybuffer'
| 'blob'
| 'document'
| 'json'
| 'text'
| 'stream';
};
export class HttpError extends Error {
constructor(
public status: number,
public code?: string,
public data?: unknown
) {
super(`HTTP ${status}${code ? ` ${code}` : ''}`);
}
}