123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- /// <reference types="node" />
- import Tokenizer from "./Tokenizer";
- import { EventEmitter } from "events";
- export interface ParserOptions {
- /***
- * Indicates whether special tags (<script> and <style>) 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;
- /***
- * If set to true, entities within the document will be decoded. Defaults to `false`.
- */
- decodeEntities?: boolean;
- /***
- * If set to true, all tags will be lowercased. If xmlMode is disabled, this defaults to `true`.
- */
- lowerCaseTags?: boolean;
- /***
- * If set to `true`, all attribute names will be lowercased. This has noticeable impact on speed, so it defaults to `false`.
- */
- 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.
- */
- 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.
- */
- 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;
- onattribute(name: string, value: string): 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 extends EventEmitter {
- _tagname: string;
- _attribname: string;
- _attribvalue: string;
- _attribs: null | {
- [key: string]: string;
- };
- _stack: string[];
- _foreignContext: boolean[];
- startIndex: number;
- endIndex: number | null;
- _cbs: Partial<Handler>;
- _options: ParserOptions;
- _lowerCaseTagNames: boolean;
- _lowerCaseAttributeNames: boolean;
- _tokenizer: Tokenizer;
- constructor(cbs: Partial<Handler> | null, options?: ParserOptions);
- _updatePosition(initialOffset: number): void;
- ontext(data: string): void;
- onopentagname(name: string): void;
- onopentagend(): void;
- onclosetag(name: string): void;
- onselfclosingtag(): void;
- _closeCurrentTag(): void;
- onattribname(name: string): void;
- onattribdata(value: string): void;
- onattribend(): void;
- _getInstructionName(value: string): string;
- ondeclaration(value: string): void;
- onprocessinginstruction(value: string): void;
- oncomment(value: string): void;
- oncdata(value: string): void;
- onerror(err: Error): void;
- onend(): void;
- reset(): void;
- parseComplete(data: string): void;
- write(chunk: string): void;
- end(chunk?: string): void;
- pause(): void;
- resume(): void;
- parseChunk: (chunk: string) => void;
- done: (chunk?: string | undefined) => void;
- }
- //# sourceMappingURL=Parser.d.ts.map
|