UNPKG

@dnb/eufemia

Version:

DNB Eufemia Design System UI Library

62 lines (61 loc) 2.51 kB
import { ReceiveAdditionalEventArgs } from '../types'; export type UrlSecondParameter = { countryCode: string; }; export type GeneralConfig = { fetchConfig?: { url: string | ((value: string, { countryCode }: UrlSecondParameter) => string | Promise<string>); headers?: HeadersInit; }; }; export declare function createContext<GeneralConfigGeneric = GeneralConfig>(generalConfig?: GeneralConfigGeneric): { withConfig<HandlerMethod extends (generalConfig: GeneralConfigGeneric, handlerConfig: unknown) => ReturnType<HandlerMethod>>(fn: HandlerMethod, handlerConfig?: Parameters<HandlerMethod>[1]): ReturnType<HandlerMethod>; }; export type HandlerConfig = { preResponseResolver?: PreResponseResolver; responseResolver?: ResponseResolver; }; export type PreResponseResolver = (fromField: { value: string; }) => unknown; export type ResponseResolver<Response = unknown, Payload = Record<string, unknown>> = (response: Response, handlerConfig?: HandlerConfig) => { /** * The matcher to be used to determine if and how the connector, * such as an validator for `onChangeValidator` or `onBlurValidator`, * should validate the field value. */ matcher?: (value: string) => boolean; /** * The payload to be returned and used by the connector. */ payload?: Payload; }; export type FetchDataFromAPIOptions = { generalConfig: GeneralConfig; parameters?: UrlSecondParameter; abortControllerRef?: { current: null | AbortController; }; preResponseResolver?: PreResponseResolver; }; export type FetchDataReturnValue<Data = unknown> = { data: Data; status: number; }; export declare function fetchData<Data = unknown>(value: string, options: FetchDataFromAPIOptions): Promise<FetchDataReturnValue<Data>>; export declare function getCountryCodeValue({ countryCode: givenCountryCode, additionalArgs, }: { countryCode?: string; additionalArgs: ReceiveAdditionalEventArgs<unknown>; }): { countryCode: string; countryCodeValue: any; }; export declare function handleCountryPath({ value, countryCode: givenCountryCode, additionalArgs, handler, }: { value: string; countryCode?: string; additionalArgs: ReceiveAdditionalEventArgs<unknown>; handler: (value: string, additionalArgs: ReceiveAdditionalEventArgs<unknown>) => void; }): { countryCode: string; }; export declare function isSupportedCountryCode(countryCode: string, supportedCountryCodes: readonly string[]): boolean;