159 lines
		
	
	
		
			4.8 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			159 lines
		
	
	
		
			4.8 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| import Tokenizer from "./Tokenizer";
 | |
| export interface ParserOptions {
 | |
|     /**
 | |
|      * Indicates whether special tags (`<script>`, `<style>`, and `<title>`) should get special treatment
 | |
|      * and if "empty" tags (eg. `<br>`) can have children.  If `false`, the content of special tags
 | |
|      * will be text only. For feeds and other XML content (documents that don't consist of HTML),
 | |
|      * set this to `true`.
 | |
|      *
 | |
|      * @default false
 | |
|      */
 | |
|     xmlMode?: boolean;
 | |
|     /**
 | |
|      * Decode entities within the document.
 | |
|      *
 | |
|      * @default true
 | |
|      */
 | |
|     decodeEntities?: boolean;
 | |
|     /**
 | |
|      * If set to true, all tags will be lowercased.
 | |
|      *
 | |
|      * @default !xmlMode
 | |
|      */
 | |
|     lowerCaseTags?: boolean;
 | |
|     /**
 | |
|      * If set to `true`, all attribute names will be lowercased. This has noticeable impact on speed.
 | |
|      *
 | |
|      * @default !xmlMode
 | |
|      */
 | |
|     lowerCaseAttributeNames?: boolean;
 | |
|     /**
 | |
|      * If set to true, CDATA sections will be recognized as text even if the xmlMode option is not enabled.
 | |
|      * NOTE: If xmlMode is set to `true` then CDATA sections will always be recognized as text.
 | |
|      *
 | |
|      * @default xmlMode
 | |
|      */
 | |
|     recognizeCDATA?: boolean;
 | |
|     /**
 | |
|      * If set to `true`, self-closing tags will trigger the onclosetag event even if xmlMode is not set to `true`.
 | |
|      * NOTE: If xmlMode is set to `true` then self-closing tags will always be recognized.
 | |
|      *
 | |
|      * @default xmlMode
 | |
|      */
 | |
|     recognizeSelfClosing?: boolean;
 | |
|     /**
 | |
|      * Allows the default tokenizer to be overwritten.
 | |
|      */
 | |
|     Tokenizer?: typeof Tokenizer;
 | |
| }
 | |
| export interface Handler {
 | |
|     onparserinit(parser: Parser): void;
 | |
|     /**
 | |
|      * Resets the handler back to starting state
 | |
|      */
 | |
|     onreset(): void;
 | |
|     /**
 | |
|      * Signals the handler that parsing is done
 | |
|      */
 | |
|     onend(): void;
 | |
|     onerror(error: Error): void;
 | |
|     onclosetag(name: string): void;
 | |
|     onopentagname(name: string): void;
 | |
|     /**
 | |
|      *
 | |
|      * @param name Name of the attribute
 | |
|      * @param value Value of the attribute.
 | |
|      * @param quote Quotes used around the attribute. `null` if the attribute has no quotes around the value, `undefined` if the attribute has no value.
 | |
|      */
 | |
|     onattribute(name: string, value: string, quote?: string | undefined | null): void;
 | |
|     onopentag(name: string, attribs: {
 | |
|         [s: string]: string;
 | |
|     }): void;
 | |
|     ontext(data: string): void;
 | |
|     oncomment(data: string): void;
 | |
|     oncdatastart(): void;
 | |
|     oncdataend(): void;
 | |
|     oncommentend(): void;
 | |
|     onprocessinginstruction(name: string, data: string): void;
 | |
| }
 | |
| export declare class Parser {
 | |
|     /** The start index of the last event. */
 | |
|     startIndex: number;
 | |
|     /** The end index of the last event. */
 | |
|     endIndex: number | null;
 | |
|     private tagname;
 | |
|     private attribname;
 | |
|     private attribvalue;
 | |
|     private attribs;
 | |
|     private stack;
 | |
|     private readonly foreignContext;
 | |
|     private readonly cbs;
 | |
|     private readonly options;
 | |
|     private readonly lowerCaseTagNames;
 | |
|     private readonly lowerCaseAttributeNames;
 | |
|     private readonly tokenizer;
 | |
|     constructor(cbs: Partial<Handler> | null, options?: ParserOptions);
 | |
|     private updatePosition;
 | |
|     ontext(data: string): void;
 | |
|     onopentagname(name: string): void;
 | |
|     onopentagend(): void;
 | |
|     onclosetag(name: string): void;
 | |
|     onselfclosingtag(): void;
 | |
|     private closeCurrentTag;
 | |
|     onattribname(name: string): void;
 | |
|     onattribdata(value: string): void;
 | |
|     onattribend(quote: string | undefined | null): void;
 | |
|     private getInstructionName;
 | |
|     ondeclaration(value: string): void;
 | |
|     onprocessinginstruction(value: string): void;
 | |
|     oncomment(value: string): void;
 | |
|     oncdata(value: string): void;
 | |
|     onerror(err: Error): void;
 | |
|     onend(): void;
 | |
|     /**
 | |
|      * Resets the parser to a blank state, ready to parse a new HTML document
 | |
|      */
 | |
|     reset(): void;
 | |
|     /**
 | |
|      * Resets the parser, then parses a complete document and
 | |
|      * pushes it to the handler.
 | |
|      *
 | |
|      * @param data Document to parse.
 | |
|      */
 | |
|     parseComplete(data: string): void;
 | |
|     /**
 | |
|      * Parses a chunk of data and calls the corresponding callbacks.
 | |
|      *
 | |
|      * @param chunk Chunk to parse.
 | |
|      */
 | |
|     write(chunk: string): void;
 | |
|     /**
 | |
|      * Parses the end of the buffer and clears the stack, calls onend.
 | |
|      *
 | |
|      * @param chunk Optional final chunk to parse.
 | |
|      */
 | |
|     end(chunk?: string): void;
 | |
|     /**
 | |
|      * Pauses parsing. The parser won't emit events until `resume` is called.
 | |
|      */
 | |
|     pause(): void;
 | |
|     /**
 | |
|      * Resumes parsing after `pause` was called.
 | |
|      */
 | |
|     resume(): void;
 | |
|     /**
 | |
|      * Alias of `write`, for backwards compatibility.
 | |
|      *
 | |
|      * @param chunk Chunk to parse.
 | |
|      * @deprecated
 | |
|      */
 | |
|     parseChunk(chunk: string): void;
 | |
|     /**
 | |
|      * Alias of `end`, for backwards compatibility.
 | |
|      *
 | |
|      * @param chunk Optional final chunk to parse.
 | |
|      * @deprecated
 | |
|      */
 | |
|     done(chunk?: string): void;
 | |
| }
 | |
| //# sourceMappingURL=Parser.d.ts.map
 |