UNPKG

@paroicms/server-image-cache-engine

Version:

The image variant engine that we use at Paroi.

64 lines (63 loc) 1.72 kB
import type { ResizeRule, SizeName } from "@paroicms/public-anywhere-lib"; export interface ImageVariantStorage { type: "sqlite"; file: string; } export type GetOriginalImage = (mediaId: string) => Promise<Buffer>; export interface RequestedImageVariantWithSize extends RequestedImageVariant, ImageVariantSize { } export interface RequestedImageVariant { rawSizeName: SizeName; mediaType: string; } export interface NewVariantInput { rawResizeR: ResizeRule; autoCrop?: boolean; mediaType?: string; sourceImage: SourceImageRef; } export interface SourceImageRef { mediaId: string; rawHeight: number; rawWidth: number; mediaType: string; slug: string | undefined; avgRawWidth?: number; avgRawHeight?: number; } export interface ImageVariantSize { rawWidth: number; rawHeight: number; rawSizeName: SizeName; } export interface ImageVariant extends ImageVariantSize { mediaId: string; mediaType: string; resourceVersion: string; slug?: string; } export interface ImageVariantWithBinary extends ImageVariant { weightB: number; binaryFile: Buffer; /** * Timestamp as ISO string. */ lastModified: string; } export interface ImageCacheOwnerTransaction { makeImageAvailable(inputs: NewVariantInput[], options?: { optimizeForBatch?: { getMoreInputsForBatch: (filter: (input: NewVariantInput) => boolean) => NewVariantInput[]; }; }): Promise<ImageVariant[]>; flush(): Promise<void>; close(): Promise<void>; } export interface RawSize { rawWidth: number; rawHeight: number; } export interface UsedRawSize { rawResizeR: ResizeRule; rawSizeName: SizeName; }