You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
			
				
					85 lines
				
				2.8 KiB
			
		
		
			
		
	
	
					85 lines
				
				2.8 KiB
			| 
								 
											4 years ago
										 
									 | 
							
								import { Node, Element, DataNode, NodeWithChildren, Document } from "./node";
							 | 
						||
| 
								 | 
							
								export * from "./node";
							 | 
						||
| 
								 | 
							
								export interface DomHandlerOptions {
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * Add a `startIndex` property to nodes.
							 | 
						||
| 
								 | 
							
								     * When the parser is used in a non-streaming fashion, `startIndex` is an integer
							 | 
						||
| 
								 | 
							
								     * indicating the position of the start of the node in the document.
							 | 
						||
| 
								 | 
							
								     *
							 | 
						||
| 
								 | 
							
								     * @default false
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    withStartIndices?: boolean;
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * Add an `endIndex` property to nodes.
							 | 
						||
| 
								 | 
							
								     * When the parser is used in a non-streaming fashion, `endIndex` is an integer
							 | 
						||
| 
								 | 
							
								     * indicating the position of the end of the node in the document.
							 | 
						||
| 
								 | 
							
								     *
							 | 
						||
| 
								 | 
							
								     * @default false
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    withEndIndices?: boolean;
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * Replace all whitespace with single spaces.
							 | 
						||
| 
								 | 
							
								     *
							 | 
						||
| 
								 | 
							
								     * **Note:** Enabling this might break your markup.
							 | 
						||
| 
								 | 
							
								     *
							 | 
						||
| 
								 | 
							
								     * @default false
							 | 
						||
| 
								 | 
							
								     * @deprecated
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    normalizeWhitespace?: boolean;
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * Treat the markup as XML.
							 | 
						||
| 
								 | 
							
								     *
							 | 
						||
| 
								 | 
							
								     * @default false
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    xmlMode?: boolean;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								interface ParserInterface {
							 | 
						||
| 
								 | 
							
								    startIndex: number | null;
							 | 
						||
| 
								 | 
							
								    endIndex: number | null;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								declare type Callback = (error: Error | null, dom: Node[]) => void;
							 | 
						||
| 
								 | 
							
								declare type ElementCallback = (element: Element) => void;
							 | 
						||
| 
								 | 
							
								export declare class DomHandler {
							 | 
						||
| 
								 | 
							
								    /** The elements of the DOM */
							 | 
						||
| 
								 | 
							
								    dom: Node[];
							 | 
						||
| 
								 | 
							
								    /** The root element for the DOM */
							 | 
						||
| 
								 | 
							
								    root: Document;
							 | 
						||
| 
								 | 
							
								    /** Called once parsing has completed. */
							 | 
						||
| 
								 | 
							
								    private readonly callback;
							 | 
						||
| 
								 | 
							
								    /** Settings for the handler. */
							 | 
						||
| 
								 | 
							
								    private readonly options;
							 | 
						||
| 
								 | 
							
								    /** Callback whenever a tag is closed. */
							 | 
						||
| 
								 | 
							
								    private readonly elementCB;
							 | 
						||
| 
								 | 
							
								    /** Indicated whether parsing has been completed. */
							 | 
						||
| 
								 | 
							
								    private done;
							 | 
						||
| 
								 | 
							
								    /** Stack of open tags. */
							 | 
						||
| 
								 | 
							
								    protected tagStack: NodeWithChildren[];
							 | 
						||
| 
								 | 
							
								    /** A data node that is still being written to. */
							 | 
						||
| 
								 | 
							
								    protected lastNode: DataNode | null;
							 | 
						||
| 
								 | 
							
								    /** Reference to the parser instance. Used for location information. */
							 | 
						||
| 
								 | 
							
								    private parser;
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * @param callback Called once parsing has completed.
							 | 
						||
| 
								 | 
							
								     * @param options Settings for the handler.
							 | 
						||
| 
								 | 
							
								     * @param elementCB Callback whenever a tag is closed.
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    constructor(callback?: Callback | null, options?: DomHandlerOptions | null, elementCB?: ElementCallback);
							 | 
						||
| 
								 | 
							
								    onparserinit(parser: ParserInterface): void;
							 | 
						||
| 
								 | 
							
								    onreset(): void;
							 | 
						||
| 
								 | 
							
								    onend(): void;
							 | 
						||
| 
								 | 
							
								    onerror(error: Error): void;
							 | 
						||
| 
								 | 
							
								    onclosetag(): void;
							 | 
						||
| 
								 | 
							
								    onopentag(name: string, attribs: {
							 | 
						||
| 
								 | 
							
								        [key: string]: string;
							 | 
						||
| 
								 | 
							
								    }): void;
							 | 
						||
| 
								 | 
							
								    ontext(data: string): void;
							 | 
						||
| 
								 | 
							
								    oncomment(data: string): void;
							 | 
						||
| 
								 | 
							
								    oncommentend(): void;
							 | 
						||
| 
								 | 
							
								    oncdatastart(): void;
							 | 
						||
| 
								 | 
							
								    oncdataend(): void;
							 | 
						||
| 
								 | 
							
								    onprocessinginstruction(name: string, data: string): void;
							 | 
						||
| 
								 | 
							
								    protected handleCallback(error: Error | null): void;
							 | 
						||
| 
								 | 
							
								    protected addNode(node: Node): void;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								export default DomHandler;
							 | 
						||
| 
								 | 
							
								//# sourceMappingURL=index.d.ts.map
							 |