@paroicms/server-image-cache-engine
Version:
The image variant engine that we use at Paroi.
84 lines (83 loc) • 3.31 kB
TypeScript
import type { ResizeRule } from "@paroicms/public-anywhere-lib";
import type { ImageVariant, ImageVariantWithBinary, UsedRawSize } from "../engine-types.js";
import type { VariantEngineContext } from "./engine-context.js";
import type { ResizeOwner, StoredCacheItem } from "./internal.types.js";
export declare function insertIntoImageVariant(ctx: Pick<VariantEngineContext, "cn">, data: {
resourceVersion: string;
mediaId: string;
mediaType: string;
rawWidth: number;
rawHeight: number;
weightB: number;
binaryFile: Buffer;
slug?: string;
}, owners: ResizeOwner[]): Promise<{
imageCacheId: string;
lastModified: string;
}>;
export declare function insertIntoPaImageCacheOwner(ctx: Pick<VariantEngineContext, "cn">, input: {
imageCacheId: string;
owners: ResizeOwner[];
}): Promise<void>;
export declare function fetchImageVariant(ctx: Pick<VariantEngineContext, "cn" | "logger">, input: {
mediaId: string;
mediaType: string;
rawWidth: number;
rawHeight: number;
}): Promise<{
id: string;
variant: ImageVariant;
} | undefined>;
export declare function fetchImageVariantWithBinary(ctx: Pick<VariantEngineContext, "cn" | "logger">, input: {
mediaId: string;
mediaType: string;
rawWidth: number;
rawHeight: number;
}): Promise<{
variant: ImageVariantWithBinary;
id: string;
} | undefined>;
export declare function fetchImageVariantWithBinaryByOwner(ctx: Pick<VariantEngineContext, "cn" | "logger">, input: {
mediaId: string;
mediaType: string;
ownerHandle: string;
rawResizeR: ResizeRule;
}): Promise<{
variant: ImageVariantWithBinary;
id: string;
} | undefined>;
export declare function deleteVariants(ctx: VariantEngineContext, options: {
mediaId: string;
} | {
mediaIds: string[];
}): Promise<void>;
/**
* @returns the list of cache ownerHandles that were deleted
*/
export declare function deleteVariantsByDependencies(ctx: VariantEngineContext, options: {
ownerHandles: string[];
}): Promise<void>;
/**
* Delete the images that have no ownerHandle and that have not been used recently.
* @returns the number of cache identifiers that were deleted
*/
export declare function deleteOrphanVariants(ctx: VariantEngineContext): Promise<number | undefined>;
export declare function associateOwnerToImages(ctx: Pick<VariantEngineContext, "cn" | "logger">, { ownerHandle, cacheImages, isHandleReusable, }: {
ownerHandle: string;
cacheImages: {
imageCacheId: string;
rawResizeR: ResizeRule;
}[];
isHandleReusable: boolean;
}): Promise<void>;
export declare function fetchStoredCacheItems(ctx: Pick<VariantEngineContext, "cn" | "logger" | "logNextQuery">, ownerHandle: string): Promise<StoredCacheItem[]>;
export declare function fetchBatchOfStoredCacheItems(ctx: Pick<VariantEngineContext, "cn" | "logger" | "logNextQuery">, groups: {
requestedVariants: {
mediaType: string;
rawWidth: number;
rawHeight: number;
}[];
mediaIds: string[];
}[], alreadyOwnedBy: string): Promise<StoredCacheItem[]>;
export declare function clearAll({ cn }: VariantEngineContext): Promise<void>;
export declare function fetchUsedRawSizesByMedia(ctx: Pick<VariantEngineContext, "cn" | "logger">, mediaId: string): Promise<UsedRawSize[]>;