@fastly/esi
Version:
ESI implementation for JavaScript, using the modern fetch and streaming APIs.
50 lines • 1.89 kB
TypeScript
import { XmlDocument, XmlElement, XmlElementNode } from './XmlModel.js';
import StreamerState from "./StreamerState.js";
export type XmlStreamerParseOptions = {
ignoreDefaultTags?: boolean;
beforeProcess?: (streamerState: StreamerState) => void;
};
export declare class XmlStreamerContext {
document: XmlDocument;
options: XmlStreamerParseOptions;
children: XmlElementNode[];
openElements: XmlElement[];
streamerState: StreamerState;
constructor(document?: XmlDocument | null, options?: XmlStreamerParseOptions);
append(xmlString: string): void;
process(): void;
flush(force?: boolean): void;
applyNamespaces(): void;
}
type ParseXmlChunkResultText = {
type: 'text';
content: string;
};
type ParseXmlChunkResultElementBase = {
localFullname: string;
};
type ParseXmlChunkResultElementAttrs = {
attrs: {
[localFullname: string]: string;
};
};
type ParseXmlChunkResultElementOpen = ParseXmlChunkResultElementBase & ParseXmlChunkResultElementAttrs & {
type: 'element-open';
};
type ParseXmlChunkResultElementSelfClose = ParseXmlChunkResultElementBase & ParseXmlChunkResultElementAttrs & {
type: 'element-self-close';
};
type ParseXmlChunkResultElementClose = ParseXmlChunkResultElementBase & {
type: 'element-close';
};
type ParseXmlChunkResultUnknown = {
type: 'unknown';
};
type ParseXmlChunkResultElement = ParseXmlChunkResultElementOpen | ParseXmlChunkResultElementSelfClose | ParseXmlChunkResultElementClose;
type ParseXmlChunkResultCommon = {
remainingXmlString: string;
};
type ParseXmlChunkResult = ParseXmlChunkResultCommon & (ParseXmlChunkResultText | ParseXmlChunkResultElement | ParseXmlChunkResultUnknown);
export declare function parseXmlStringChunk(xmlString: string, options?: XmlStreamerParseOptions): ParseXmlChunkResult;
export {};
//# sourceMappingURL=XmlStreamer.d.ts.map