JavaScript SDK
Preview
npm-пакет @fastpic/sdk перебуває в Preview. Контракт API нижче стабільний, але пакет поки недоступний для публічного встановлення. Приклади коду демонструють запланований інтерфейс.
Встановлення
Після публікації пакету:
terminal
npm install @fastpic/sdk# oryarn add @fastpic/sdkІніціалізація
Створіть singleton-екземпляр FastPic із вашим API-ключем. Переіспользуйте його по всьому застосунку.
fastpic-client.ts
import { FastPic } from '@fastpic/sdk' export const fp = new FastPic({ apiKey: process.env.FP_KEY!})fp.images.*
Дзеркало методів REST API. Ті самі параметри, ті самі формати відповідей.
images.ts
// uploadconst image = await fp.images.upload(file, { name: 'product.jpg' }) // list with paginationconst { items, total } = await fp.images.list({ page: 1, limit: 30 }) // retrieve / deleteconst one = await fp.images.retrieve(image.publicId)await fp.images.delete(image.publicId)fp.url(publicId)
Генеруйте URL трансформацій за допомогою fluent-будівника. Ледачий: нічого не виконується на сервері до виклику stringify.
thumb.ts
const src = fp.url(publicId) .resize(800, 600) .format('webp') .quality(85) .fit('cover') .toString()// → "https://media.fastpic.pro/{publicId}?w=800&h=600&fmt=webp&q=85&fit=cover"Обробка помилок
Усі викинуті помилки — екземпляри FastPicError з полями code, statusCode, requestId та оригінальним повідомленням. Використовуйте switch по полю code для розгалуження логіки.
catch.ts
try { await fp.images.upload(file)} catch (e) { if (e instanceof FastPicError && e.code === 'rate_limit_exceeded') { console.warn('backoff: ', e.requestId) }}TypeScript-типи
Типи входять до складу пакету. Окремий @types/fastpic не потрібен.