The Ultimate 1KB Fetch Wrapper. Zero dependencies, maximum productivity.
res.json()지옥에서 벗어나세요. 의존성 제로 1KB 초경량 Fetch 래퍼.
- 📦 ESM Native Only: Designed exclusively for modern ECMAScript Modules (
import/export). - 🧠 Auto JSON Parsing: No more
.then(res => res.json()). It does it automatically based on headers. - 🚨 Auto Throw Errors: Native
fetchdoesn't throw on 404 or 500.lll-fetchdoes. - ⏱️ Built-in Timeout: Requests abort automatically after 8 seconds (customizable).
- 🎈 Zero Dependencies: Uses native
fetchandAbortControllerunder the hood.
npm install lll-fetch"type": "module" is set in your package.json
Stop dealing with boilerplate code. LLLFetch returns the parsed payload directly.
import { http, HttpError } from 'lll-fetch';
async function fetchUser() {
try {
// 1. GET request (Timeout defaults to 8000ms)
// Returns the JSON payload DIRECTLY!
const user = await http.get('[https://api.example.com/users/1](https://api.example.com/users/1)');
console.log(user.name);
// 2. POST request (Auto stringifies the body)
const newPost = await http.post('[https://api.example.com/posts](https://api.example.com/posts)', {
title: 'lll-fetch is awesome'
});
} catch (error) {
if (error instanceof HttpError) {
console.error(`Status: ${error.status}`);
console.error(`Server Payload:`, error.data); // The error response from the server
} else {
console.error('Network or Timeout Error:', error.message);
}
}
}불필요한 껍데기나 파싱 과정 없이, 서버가 응답한 데이터를 다이렉트로 반환합니다.
import { http, HttpError } from 'lll-fetch';
async function fetchUser() {
try {
// 1. GET 요청 (기본 타임아웃 8초, 넘어가면 알아서 에러 뱉음)
// res.json() 파싱 없이 실제 데이터를 즉시 받습니다.
const user = await http.get('[https://api.example.com/users/1](https://api.example.com/users/1)', { timeout: 5000 });
console.log(user.name);
// 2. POST 요청 (객체를 던지면 알아서 JSON 문자열로 변환해서 전송)
const newPost = await http.post('[https://api.example.com/posts](https://api.example.com/posts)', {
title: 'lll-fetch 진짜 편하네'
});
} catch (error) {
// 400이나 500 에러가 나면 자동으로 catch로 넘어옵니다. (기존 fetch는 안 넘어옴)
if (error instanceof HttpError) {
console.error(`에러 코드: ${error.status}`);
console.error(`서버가 보낸 에러 내용:`, error.data);
} else {
console.error('네트워크 또는 타임아웃 에러:', error.message);
}
}
}