UNPKG

@paroicms/server

Version:
25 lines (24 loc) 1.6 kB
import { type LiquidPayload, type LoadDescriptor, type WithLoadDescriptor } from "@paroicms/public-server-lib"; import type { RenderingContext } from "./liquidjs-rendering/rendering-context.js"; export interface LiquidDropOptions<T> { renderingCacheKey: string; values: LiquidValuesImpl<T>; } type LiquidValuesImpl<T> = { [K in keyof T]: LiquidValueImpl<T[K]>; }; type LiquidValueImpl<T> = T | LiquidPayload<T> | LiquidPayloadArray<T> | LiquidLazyValue<T>; type LiquidPayloadArray<T> = T extends (infer V)[] ? LiquidPayload<V>[] : never; type LiquidLazyValue<T> = () => LiquidLazyResult<T> | Promise<LiquidLazyResult<T>>; type LiquidLazyResult<T> = T | LiquidPayload<T> | LiquidPayloadArray<T> | undefined | void; export declare function createLiquidDrop<T>(renderingContext: RenderingContext, optionsOrFn: LiquidDropOptions<T> | (() => Promise<LiquidDropOptions<T>>)): LiquidPayload<T>; export declare function createLiquidDrop<T, D extends LoadDescriptor>(renderingContext: RenderingContext, optionsOrFn: LiquidDropOptions<Omit<T, "__notARealProperty__">> | (() => Promise<LiquidDropOptions<Omit<T, "__notARealProperty__">>>), options2: { loadDescriptor: D; }): LiquidPayload<T & WithLoadDescriptor>; export declare function loadOrFromRenderingCache<T>(renderingContext: RenderingContext, renderingCacheKey: string, load: () => Promise<T>): Promise<T>; export declare function createLiquidDropFromPromise<T>({ renderingContext, renderingCacheKey, value, }: { renderingContext: RenderingContext; renderingCacheKey: string; value: Promise<T>; }): LiquidPayload<T>; export {};