UNPKG

@hirosystems/api-toolkit

Version:
32 lines (31 loc) 1.41 kB
import { FastifyReply } from 'fastify'; /** * A `Cache-Control` header used for re-validation based caching. * * `public` == allow proxies/CDNs to cache as opposed to only local browsers. * * `no-cache` == clients can cache a resource but should revalidate each time before using it. * * `must-revalidate` == somewhat redundant directive to assert that cache must be revalidated, required by some CDNs */ export declare const CACHE_CONTROL_MUST_REVALIDATE = "public, no-cache, must-revalidate"; export declare function setResponseNonCacheable(reply: FastifyReply): Promise<void>; /** * Parses the etag values from a raw `If-None-Match` request header value. * The wrapping double quotes (if any) and validation prefix (if any) are stripped. * The parsing is permissive to account for commonly non-spec-compliant clients, proxies, CDNs, etc. * E.g. the value: * ```js * `"a", W/"b", c,d, "e", "f"` * ``` * Would be parsed and returned as: * ```js * ['a', 'b', 'c', 'd', 'e', 'f'] * ``` * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/If-None-Match#syntax * ``` * If-None-Match: "etag_value" * If-None-Match: "etag_value", "etag_value", ... * If-None-Match: * * ``` * @param ifNoneMatchHeaderValue - raw header value * @returns an array of etag values */ export declare function parseIfNoneMatchHeader(ifNoneMatchHeaderValue: string | undefined): string[] | undefined;