@cf-wasm/og
Version:
Generate Open Graph Images dynamically from HTML/CSS without a browser.
96 lines • 2.83 kB
text/typescript
import { MayBePromise } from "./types.cjs";
//#region src/core/cache.d.ts
/** The execution context interface */
interface ExecutionContext {
waitUntil(promise: Promise<unknown>): void;
}
/**
* An interface representing options for `cache.serve` method
*/
interface ServeCacheOptions<K extends RequestInfo | URL> {
/**
* The {@link Cache} to use if provided, otherwise uses default
*/
cache?: Cache;
/**
* Preserve headers from response headers being removed
*/
preserveHeaders?: string[] | ((headerKey: string, headerValue: string, response: Response, cacheStore: Cache, cacheKey: K) => boolean) | boolean;
/**
* Indicates whether `Cache-Control should be overwritten`.
* It also can be a string representing the header value
*
* @default true
*/
overwriteCacheControl?: string | boolean;
}
/** Cache utils */
declare class CacheUtils {
/** Indicates whether cache is enabled */
private _enabled;
/**
* Indicates whether {@link Cache} api is supported
* in current environment or not
*/
get supported(): boolean;
/**
* The {@link Cache} instance or a
* string representing the name of {@link Cache} to be opened
*/
store: string | Cache;
/**
* The `Cache-Control` header to set for asset responses for caching
*
* @default 'public, max-age=604800, s-maxage=43200'
*/
cacheControlHeader: string;
/** The waitUntil function */
private _waitUntil?;
/** Enables cache */
enable(): void;
/** Disables cache */
disable(): void;
/**
* Sets execution context
*
* Example for Cloudflare workers:
*
* ```ts
* import { cache } from "@cf-wasm/og";
*
* export interface Env {}
*
* export default {
* fetch(req: Request, env: Env, ctx: ExecutionContext) {
* cache.setExecutionContext(ctx);
*
* // ...
* }
* }
* ```
*/
setExecutionContext(ctx: ExecutionContext): void;
/**
* Opens a cache
*
* @param cacheName If provided, the name of cache to be opened
*
* @returns A promise which resolves to {@link Cache}
*/
open(cacheName?: string): Promise<Cache>;
/**
* Serve cached assets
*
* @param key The cache key
* @param fallback The fallback function which provides the {@link Response} when cache key is not matched
* @param param2 Options
*
* @returns A promise which resolves to {@link Response}
*/
serve<K extends RequestInfo | URL, F extends (cacheKey: K, cacheStore: Cache) => MayBePromise<Response | undefined>>(key: K, fallback: F, { cache: cacheStore, preserveHeaders, overwriteCacheControl }?: ServeCacheOptions<K>): Promise<Awaited<ReturnType<F>>>;
clearMaps(): void;
}
declare const cache: CacheUtils;
//#endregion
export { ExecutionContext, ServeCacheOptions, cache };
//# sourceMappingURL=cache.d.cts.map