Справочник API
Типы времени выполнения
Все публичные типы экспортируются из корня пакета:
import type {
ImageStatus, // 'idle' | 'loading' | 'loaded' | 'error'
SrcSet, // { avif?: string; webp?: string; fallback: string }
ResponsiveSrc, // Record<string, string | SrcSet> — брейкпоинт-ключ → URL, или набор форматов для этого брейкпоинта
BreakpointMap, // Record<string, string> — брейкпоинт-ключ → CSS media query
VImageKitOptions, // { breakpoints?: BreakpointMap; serverRoute?: string }
LazyImgOptions, // { src, placeholder?, rootMargin?, threshold?, onLoad?, onError? }
ObjectFit, // 'cover' | 'contain' | 'fill' | 'none' | 'scale-down'
FocalPoint, // { x: number; y: number } — доли 0–1
Densities, // number[] | Record<number, string> — дескрипторы плотности
ImageMeta, // запись манифеста CLI / форма импорта `?vik`, для пропа `image`
Layout, // 'fixed' | 'responsive' | 'fill' — проп `layout`
} from '@macrulez/vue-image-kit'ImageStatus
type ImageStatus = 'idle' | 'loading' | 'loaded' | 'error'Конечный автомат переходит по порядку: idle → loading → loaded или idle → loading → error. Управляет рефом status в useImage().
SrcSet
interface SrcSet {
avif?: string // Опциональный URL версии AVIF
webp?: string // Опциональный URL версии WebP
fallback: string // Обязателен — используется как fallback <img src>
}Форма, которую принимает проп src компонента VImage для переключения форматов WebP/AVIF.
VImageKitOptions
interface VImageKitOptions {
breakpoints?: BreakpointMap
serverRoute?: string
}Опции для app.use(VImageKitPlugin, options). breakpoints задаёт глобальные брейкпоинты для арт-дирекции; serverRoute устанавливает маршрут по умолчанию для loader="server" (см. useServerRoute()).
LazyImgOptions
interface LazyImgOptions {
src: string
placeholder?: string
rootMargin?: string
threshold?: number
onLoad?: () => void
onError?: (e: Event) => void
}Директива v-lazy-img принимает либо простую string (это src), либо объект LazyImgOptions.
Работа с типизированными опциями в v-lazy-img
import type { LazyImgOptions } from '@macrulez/vue-image-kit'
const bgOptions: LazyImgOptions = {
src: '/hero.jpg',
placeholder: 'data:image/jpeg;base64,...',
rootMargin: '100px',
onLoad: () => analytics.track('hero_loaded'),
}<div v-lazy-img="bgOptions" class="hero" />ObjectFit
type ObjectFit = 'cover' | 'contain' | 'fill' | 'none' | 'scale-down'Проп fit у VImage — передаётся напрямую как значение CSS object-fit.
FocalPoint
interface FocalPoint {
x: number // 0–1
y: number // 0–1
}Проп focal у VImage — см. Фокальная точка.
Densities
type Densities = number[] | Record<number, string>Проп densities у VImage — см. Дескрипторы плотности.
ImageMeta
Форма записи манифеста CLI / импорта ?vik на этапе сборки — всё, что проп image компонента VImage может задать одновременно (src/width/height/blurhash/thumbhash/placeholder/sizes, плюс сокращения src{width} для каждой ширины). См. Импорты на этапе сборки.
Layout
type Layout = 'fixed' | 'responsive' | 'fill'Проп layout у VImage — см. Пресеты раскладки.
Утилиты
Чистые функции без зависимостей, экспортируемые из корня пакета — у большинства уже есть своя страница; это плоский индекс.
generateSrcset(src, widths),generateSizes(sizes?),generateDensitySrcset(src, densities),buildSizes(map, breakpoints)— см. srcset + sizes.generatePreloadLink(href, options)— см. Ссылки preload.decodeBlurhash(hash, width, height),decodeThumbHash(hash),thumbHashToAverageRGBA(hash),thumbHashToAverageColor(hash),encodeBlurhash(source, options?),encodeThumbHash(source, options?)— см. Плейсхолдеры.isSaveDataEnabled()— см. Адаптация к сети.buildImageUrl(src, options)— см. Самостоятельно размещаемый сервер по запросу.pickSmallestSrcsetUrl(srcset)→string | undefined. Разбирает строкуsrcsetи возвращает URL с наименьшим дескрипторомw. Больше нигде не задокументирована — это единственное упоминание. Используется внутри пропаrespectSaveDataуVImage, чтобы понизиться до самого дешёвого доступного кандидата на соединении с экономией трафика (см. Адаптация к сети); доступна напрямую для собственного механизма понижения качества внеVImage.