@dnb/eufemia
Version:
DNB Eufemia Design System UI Library
62 lines (61 loc) • 2.51 kB
TypeScript
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;