Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | 2x 2x 2x 1x 40x 40x 40x 40x 40x 40x 40x 78x 2x 2x 38x 2x 40x 38x | import { HttpResponseError } from './model/Errors'; type RequestArgs = { endpoint: string; requestBody?: Record<string, unknown>; headers?: Record<string, string>; }; type RequestOptions = RequestArgs & Omit<RequestInit, 'body' | 'headers'>; let globalRequestOptions: Partial<RequestOptions> = {}; /** * An object containing any custom settings that you want to apply to the global fetch method. * @param options See possible options here: https://developer.mozilla.org/en-US/docs/Web/API/fetch#options */ export function setGlobalRequestOptions(options: Partial<RequestOptions>): void { globalRequestOptions = options; } async function _request({ endpoint, requestBody, headers: requestHeaders, ...options }: RequestOptions): Promise<unknown> { const body = requestBody ? JSON.stringify(requestBody) : undefined; const headers = { ...{ Accept: 'application/json, text/plain, */*' }, ...(body ? { 'Content-Type': 'application/json' } : undefined), ...requestHeaders }; const response = await fetch(endpoint, { body, headers, ...options }); if (!response.ok) { // expecting: { error: '', code: 0 } // or: { detail: '' } (cashuBtc via pythonApi) const { error, detail } = await response.json().catch(() => ({ error: 'bad response' })); throw new HttpResponseError(error || detail || 'bad response', response.status); } try { return await response.json(); } catch (err) { console.error('Failed to parse HTTP response', err); throw new HttpResponseError('bad response', response.status); } } export default async function request<T>(options: RequestOptions): Promise<T> { const data = await _request({ ...options, ...globalRequestOptions }); return data as T; } |