@paroicms/server-image-cache-engine
Version:
The image variant engine that we use at Paroi.
85 lines • 3.48 kB
TypeScript
import type { ResizeRule } from "@paroicms/public-anywhere-lib";
import type { 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 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, logger }: VariantEngineContext): Promise<void>;
export declare function makeMTypeRSizeKey(image: {
mediaType: string;
rawWidth: number;
rawHeight: number;
}): string;
export declare function fetchUsedRawSizesByMedia(ctx: Pick<VariantEngineContext, "cn" | "logger">, mediaId: string): Promise<UsedRawSize[]>;
/**
* DEBUG: Log when images become orphaned (no owners left).
* Call this before deleting orphan variants to see what's being cleaned up.
*/
export declare function debugLogOrphanedImages(ctx: Pick<VariantEngineContext, "cn" | "logger" | "timeToIdle">): Promise<void>;
//# sourceMappingURL=queries.d.ts.map