UNPKG

@fastly/esi

Version:

ESI implementation for JavaScript, using the modern fetch and streaming APIs.

61 lines 2.44 kB
import { XmlElement, XmlElementNode } from "./XmlModel.js"; import { IXmlTransformer } from "./XmlTransformStream.js"; import StreamerState from "./StreamerState.js"; import { ValueOrPromise } from "./util.js"; import { IEsiVariables } from "./EsiVariables.js"; import { EsiExpressionEvaluator } from "./EsiExpressions.js"; export declare class EsiError extends Error { constructor(message: string); } export declare class EsiElementError extends EsiError { el: XmlElement; constructor(el: XmlElement, message: string); } export declare class EsiIncludeError extends EsiElementError { constructor(el: XmlElement, message: string); } export declare class EsiStructureError extends EsiElementError { constructor(el: XmlElement, message: string); } export type EsiIncludeResult = { url: URL; headers: Headers; res: Response; }; export type ProcessIncludeResponseFunc = (esiIncludeResult: EsiIncludeResult) => ValueOrPromise<string>; export interface HandleIncludeErrorEvent { url: URL; headers: Headers; el: XmlElement; customErrorString: string | null; } export type HandleIncludeErrorFunc = (e: HandleIncludeErrorEvent) => ValueOrPromise<void>; export type EsiTransformerOptions = { vars?: IEsiVariables; fetch?: (input: RequestInfo, init?: RequestInit) => Promise<Response>; processIncludeResponse?: ProcessIncludeResponseFunc; handleIncludeError?: HandleIncludeErrorFunc; }; export default class EsiTransformer implements IXmlTransformer { static namespace: string; static depthLimit: number; url: URL; headers: Headers; options: EsiTransformerOptions; depth: number; expressionEvaluator?: EsiExpressionEvaluator; applyVars: boolean; /** * Construct an instance of EsiTransformer. * @param url Absolute URL of request that was used when fetching the stream * @param headers The request headers that were used when fetching the stream * @param options Transformer options * @param depth Depth of recursion */ constructor(url: string | URL, headers?: HeadersInit, options?: EsiTransformerOptions, depth?: number); transformChildElements(el: XmlElement): Promise<XmlElementNode[]>; transformElementNode(node: XmlElementNode): Promise<XmlElementNode | null>; isInEsiComment: boolean; xmlStreamerBeforeProcess(streamerState: StreamerState): void; } //# sourceMappingURL=EsiTransformer.d.ts.map