laftel-sdk
v1.0.3
Published
Unofficial High-Performance TypeScript SDK for Laftel.net API
Maintainers
Readme
laftel-sdk
라프텔(Laftel.net)의 애니메이션 정보 검색 및 회차 목록을 손쉽게 조회할 수 있는 고성능 비공식 TypeScript/JavaScript SDK입니다.
Node.js 공식 고성능 HTTP 클라이언트인 undici 저수준 엔진과 pnpm 기반의 초고속 패키지 관리 환경을 갖추고 있습니다.
특징 (Features)
- 초고속 통신:
undici.Agent기반의 Keep-Alive 커넥션 풀링 및 HTTP 파이프라이닝 지원 - pnpm 최적화: 빠르고 엄격한 의존성 관리 및 디스크 절약
- TypeScript 퍼스트: 완벽한 타입 추론과 모듈형 도메인 인터페이스 제공
- 독립적 설계: 어떠한 레거시 라이선스 종속성도 없는 클린룸 아키텍처 (MIT License)
- 듀얼 모듈 지원: ESM(
import)과 CommonJS(require) 모두 호환
설치 (Installation)
pnpm add laftel-sdk
# 또는 npm / yarn / bun
npm install laftel-sdk
yarn add laftel-sdk
bun add laftel-sdk개발 및 빌드 (Development)
# 의존성 설치
pnpm install
# 번들 빌드 (tsup)
pnpm run build
# 개발 모드 (watch)
pnpm run dev사용법 (Usage)
1. 객체지향형 SDK 인스턴스 사용 (추천)
import { LaftelSdk } from "laftel-sdk"
// 고성능 커넥션 풀링 옵션 지원
const laftel = new LaftelSdk({
connections: 50, // 최대 동시 연결 수
pipelining: 10, // 파이프라이닝 수
timeoutDurationMs: 5000, // 타임아웃
})
async function main() {
// 1. 검색 도메인 서비스
const searchResults = await laftel.search.byKeyword("귀멸의 칼날")
console.log(searchResults[0])
if (searchResults.length > 0) {
const itemId = searchResults[0].itemId
// 2. 작품 상세 정보 도메인 서비스
const detail = await laftel.items.getById(itemId)
console.log(`작품명: ${detail.title}`)
console.log(`평점: ${detail.score}`)
// 3. 에피소드(회차) 도메인 서비스
const episodes = await laftel.episodes.getByItemId(itemId)
console.log(`총 회차 수: ${episodes.length}`)
}
// 애플리케이션 종료 시 풀 정리
await laftel.close()
}
main()2. 간편 함수 직접 호출
import { searchByKeyword, getItemDetail, getEpisodes } from "laftel-sdk"
async function main() {
const list = await searchByKeyword("진격의 거인")
if (list.length > 0) {
const item = await getItemDetail(list[0].itemId)
console.log(item.title)
}
}
main()