refetch 개발

## 필요한 것 🛠️

1. 기본적인 http 요청 응답 가능 (get, post, put, patch, delete)
2. interceptor 총 4가지 시점 핸들링 (요청전, 요청실패, 응답성공, 응답실패) => not yet 🚨
3. 최초, fetch instance 만들때 부터 default request header 삽입 할 수 있어야함.
4. 실제 fetch를 사용할때, request header를 넣을 수 있어야함.
5. response type 제네릭으로 받을 수 있게
6. 요청을 보낼때는, json stringify 처리, 응답 받았을때는 json Parse 처리
7. 요청 혹은 응답 에러 발생시 throw Error 할 수 있게 만듬.
8. next에서 제공하는 cach Option, revalidate Option 넘길 수 있게 만듬.
9. 에러 객체 dto 만들어서 받을 수 있게 해줘야함 ⭐️
10. axios 처럼, 요청객체를 가져올 수 있어야한다. config 🚨

## 구현 완료 된 것 ✅

1. 기본적인 http 요청 응답 가능 (get, post, put, patch, delete) ✅
2. 최초, fetch instance 만들때 부터 default request header 삽입 할 수 있어야함. ✅
3. headerOption으로 request header 사용측에서 필요할때 넣을 수 있게 ✅
4. response type 제네릭으로 넘길 수 있게. ✅
5. 요청 보낼때, json stringify, 응답받을때 json Parse 처리 ✅
6. 응답 에러시에 throw Error ✅
7. next에서 제공하는 cach Option 넘길 수 있게 만듬. ✅
8. 에러 객체 dto도 만들어서 throw 할수 있게 만들어야함 ⭐️ => 에러 dto 객체를 개선해야함.
9. interceptor 총 4가지 시점 핸들링 (요청전, 요청실패, 응답성공, 응답실패)
10. axios 처럼, 요청객체를 가져올 수 있어야한다.

## 남은 것

## 인터셉터 관련

- 최초에 인스턴스 생성할때 설정할 수 있어야함. => ✅
- 필요할때, 인스턴스를 넘길 수도 있어야함.

## 개선 해야하는 것 🚨

- 에러 타이핑 -> 현재는 any임.
- 인터셉터를 각 api마다 넘겨서 사용 할 수 있게 만들어야함 -> 다양한 인터셉터 존재 가능성
- refresh token 로직 대응되나?

## fetch 테스트에 사용된 enpoint들

- <https://jsonplaceholder.typicode.com/>
- <https://dummyjson.com/>

import { NextCustomHeaderConfig, TODO } from "core";
import { Kofetch } from "index";

// 인터 셉터 예시) 모두 옵셔널이라
const interceptorObject = {
  beforereq(config: NextCustomHeaderConfig) {
    console.log("요청전 실행");
    // 여기서 header 조작함
    return config;
  },
  requestFail(err: any) {
    console.log("요청 실패 했을때 인터셉터 실행!");
    return Promise.reject(err);
  },
  handleResponseError(err: any) {
    console.log("응답 실패 했을때 인터셉터 실행!");
    return Promise.reject(err);
  },
  handleResponseSuccess(res: Promise<any>) {
    console.log("응답 성공했을때 인터셉터 실행!");
    return res;
  },
};

typescript npm 배포하기

[TypeScript] npm 라이브러리 배포하기