Node.js & TypeScript SDK
Node.js, Next.js 및 TypeScript 풀스택 애플리케이션을 위한 공식 @smallpict/sdk 가이드.
공식 SmallPict Node.js SDK는 TypeScript 정적 타입 정의, 자동 HMAC-SHA256 요청 서명, Stream 스트림 처리 지원 및 내장 재시도 기능을 제공합니다.
패키지 설치
Shell
npm install @smallpict/sdk# 또는bun add @smallpict/sdk# 또는pnpm add @smallpict/sdk빠른 시작 예제
TypeScript
import { SmallPict } from '@smallpict/sdk';import fs from 'node:fs';
const client = new SmallPict({ apiKey: process.env.SMALLPICT_API_KEY!, secretKey: process.env.SMALLPICT_SECRET_KEY!, retryConfig: { maxRetries: 3, baseDelayMs: 500 }});
// 1. 이미지 버퍼 최적화const inputBuffer = fs.readFileSync('hero.jpg');const result = await client.optimize(inputBuffer, { format: 'avif', quality: 80, maxWidth: 1920});
console.log(`최적화된 CDN URL: ${result.url}`);console.log(`절감률: ${result.savingsPercentage}% (총 ${result.bytesSaved} 바이트 절약)`);
// 2. 월간 남은 쿼터 조회const quota = await client.getQuota();console.log(`사용 쿼터: ${quota.bytesUsed} / ${quota.quotaLimitBytes} 바이트`);
// 3. 에지 CDN 캐시 즉시 퍼지await client.purgeCdn([result.url]);클라이언트 설정 옵션
TypeScript
interface ClientOptions { apiKey: string; secretKey: string; baseUrl?: string; // 기본값: https://api.smallpict.app/v1 timeoutMs?: number; // 기본값: 30000 (30초) fallbackMode?: 'throw' | 'passthrough'; // 기본값: 'throw' retryConfig?: { maxRetries?: number; // 기본값: 3회 baseDelayMs?: number; // 기본값: 500ms };}