lllfetch
v1.0.1
Published
The Ultimate 1KB Fetch Wrapper. Zero dependencies, maximum productivity.
Downloads
278
Readme
LLLfetch
The Ultimate 1KB Fetch Wrapper. Zero dependencies, maximum productivity.
res.json()지옥에서 벗어나세요. 의존성 제로 1KB 초경량 Fetch 래퍼.
⚡ Features
- 📦 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.
🚀 Installation / 설치
npm install lllfetch⚠️ Prerequisite / 필수 조건: This package is ESM-only. Ensure "type": "module" is set in your package.json
💻 Usage / 사용법
🇺🇸 English Guide
Stop dealing with boilerplate code. LLLFetch returns the parsed payload directly.
import { http, HttpError } from 'lllfetch';
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 'lllfetch';
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);
}
}
}