DenchConfig
간략한 설명
요청 빌더 내부에서 URL, RequestInit, 오류 콜백, timeout 및 중단 컨트롤러를 관리하는 설정 타입입니다.
타입 정의
interface DenchOptions extends RequestInit {
method: string;
credentials?: HTTPCredentials;
signal?: AbortSignal;
headers?: Record<string, string>;
body?: BodyInit;
cache?: HTTPCache;
mode?: HTTPMode;
redirect?: HTTPRedirect;
referrerPolicy?: HTTPReferrerPolicy;
}
interface DenchBaseConfig {
baseURL: string;
api: string;
errorcallback?: (error: unknown) => void;
URLNormalize: DenchURLNormalizeMode;
options: DenchOptions;
}
interface DenchConfig extends DenchBaseConfig {
abortController?: AbortController;
timeout?: number;
}
DenchConfig에는 제너릭이 없습니다. DenchOptions와 DenchBaseConfig는 공개 export 타입이 아니지만, 상속되는 프로퍼티를 설명하기 위해 함께 표시합니다.
프로퍼티
| Property | Type | Required | Description |
|---|---|---|---|
baseURL | string | Yes | 요청 URL의 기본 부분입니다. |
api | string | Yes | base URL 뒤에 결합할 API 경로입니다. |
errorcallback | (error: unknown) => void | No | 요청 오류가 발생했을 때 실행할 콜백입니다. |
URLNormalize | DenchURLNormalizeMode | Yes | 요청 실행 시 적용할 URL 정규화 모드입니다. |
options | DenchOptions | Yes | 실제 fetch()에 전달되는 RequestInit 설정입니다. |
abortController | AbortController | No | 요청 중단 및 timeout 처리에 사용할 컨트롤러입니다. |
timeout | number | No | 요청 제한 시간입니다. 단위는 밀리초입니다. |
options 프로퍼티
| Property | Type | Required | Description |
|---|---|---|---|
method | string | Yes | HTTP 요청 메서드입니다. |
credentials | HTTPCredentials | No | Fetch credentials 정책입니다. |
signal | AbortSignal | No | 요청 중단 signal입니다. |
headers | Record<string, string> | No | 요청 Header입니다. |
body | BodyInit | No | 요청 body입니다. |
cache | HTTPCache | No | HTTP 캐시 정책입니다. |
mode | HTTPMode | No | 요청 mode입니다. |
redirect | HTTPRedirect | No | 리다이렉트 처리 정책입니다. |
referrerPolicy | HTTPReferrerPolicy | No | referrer 정책입니다. |
DenchOptions는 RequestInit을 확장하므로 표에 없는 네이티브 RequestInit 프로퍼티도 타입상 사용할 수 있습니다.
사용처
denchfetcher(url, config?)의 선택적 설정 매개변수입니다.- 내부
runfetch(),toJson(),toFormData()실행 함수에서 사용됩니다. - 모든 요청 설정 메서드가
DenchConfig를 읽거나 새로운 설정을 반환합니다. DenchBuilder.config는 공개 타입상DenchBaseConfig이므로abortController와timeout은 해당 프로퍼티 타입에서 직접 노출되지 않습니다.
import type { DenchConfig } from 'dench-fetch';