UNPKG

@mollie/api-client

Version:
40 lines (39 loc) 2.09 kB
import { type RequestInit } from 'node-fetch'; import { type SecureContextOptions } from 'tls'; import type Page from '../data/page/Page'; import type Options from '../Options'; import HelpfulIterator from '../plumbing/iteration/HelpfulIterator'; import type Maybe from '../types/Maybe'; import { type IdempotencyParameter } from '../types/parameters'; import { type SearchParameters } from './buildUrl'; interface Data { } interface Context { } /** * This class is essentially a wrapper around fetch. It simplifies communication with the Mollie API over the network. */ export default class NetworkClient { /** * Triggers a request to the Mollie API. * * In contrast to the underlying `fetch` function, this function will: * - retry the request in some scenarios (see `retryingFetch`) * - throw an `ApiError` if the response from the Mollie API indicates an error * - appropriately process the response body before returning it (i.e. parsing it as JSON or throwing an ApiError if the response status indicates an error) */ protected readonly request: (pathname: string, options?: RequestInit) => Promise<any>; constructor({ apiKey, accessToken, versionStrings, apiEndpoint, caCertificates, libraryVersion, nodeVersion, }: Options & { caCertificates?: SecureContextOptions['ca']; libraryVersion: string; nodeVersion: string; }); post<R>(pathname: string, data: Data & IdempotencyParameter, query?: SearchParameters): Promise<R | true>; get<R>(pathname: string, query?: SearchParameters): Promise<R>; list<R>(pathname: string, binderName: string, query?: SearchParameters): Promise<R[]>; page<R>(pathname: string, binderName: string, query?: SearchParameters): Promise<R[] & Pick<Page<R>, 'links'>>; iterate<R>(pathname: string, binderName: string, query: Maybe<SearchParameters>, valuesPerMinute?: number): HelpfulIterator<R>; patch<R>(pathname: string, data: Data): Promise<R>; delete<R>(pathname: string, context?: Context & IdempotencyParameter): Promise<R | true>; } export {};