Skip to content
smallPict

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  };}