@paroicms/server-image-cache-engine
Version:
The image variant engine that we use at Paroi.
26 lines (25 loc) • 1.04 kB
TypeScript
import type { BasicAppLogger } from "@paroicms/internal-server-lib";
import type { Knex } from "knex";
import type { ImageVariantWithBinary } from "../engine-types.js";
import type { CreateImageCacheEngineOptions } from "../image-cache-engine.js";
import type { OwnerKey, TaskData, TaskKey } from "./internal.types.js";
export interface VariantEngineContext extends Omit<CreateImageCacheEngineOptions, "logger"> {
status: "ready" | "closed";
logger: BasicAppLogger;
queue: TaskKey[];
pendingTasks: Map<TaskKey, PendingTask>;
pendingTaskByOwnerKeys: Map<OwnerKey, PendingTask>;
cn: Knex;
logNextQuery: (count?: number) => void;
}
export interface PendingTask {
resolve: (result: ImageVariantWithBinary) => void;
reject: (error: unknown) => void;
promise: Promise<ImageVariantWithBinary>;
task: TaskData;
ownerKeys: Set<OwnerKey>;
}
export declare function createVariantEngineContext(options: CreateImageCacheEngineOptions): Promise<{
context: VariantEngineContext;
isCleared: boolean;
}>;