Skip to content

Commit

Permalink
refactor: Introduce tree adapter type
Browse files Browse the repository at this point in the history
  • Loading branch information
fb55 committed Jan 7, 2022
1 parent d335656 commit 4385fde
Show file tree
Hide file tree
Showing 29 changed files with 747 additions and 1,292 deletions.
5 changes: 3 additions & 2 deletions packages/parse5-parser-stream/lib/index.ts
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
import { Writable } from 'node:stream';
import { Parser } from 'parse5/lib/parser/index.js';
import type { TreeAdapterTypeMap } from 'parse5/lib/tree-adapters/interface';

export class ParserStream extends Writable {
export class ParserStream<T extends TreeAdapterTypeMap> extends Writable {
lastChunkWritten = false;
writeCallback: null | (() => void) = null;
pausedByScript = false;

parser: Parser;
pendingHtmlInsertions: string[] = [];
document: any;
document: T['document'];

constructor(options?: any) {
super({ decodeStrings: false });
Expand Down
3 changes: 2 additions & 1 deletion packages/parse5-plain-text-conversion-stream/lib/index.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
import { ParserStream } from 'parse5-parser-stream/lib/index.js';
import { TAG_NAMES as $ } from 'parse5/lib/common/html.js';
import type { TreeAdapterTypeMap } from 'parse5/lib/tree-adapters/interface';

export class PlainTextConversionStream extends ParserStream {
export class PlainTextConversionStream<T extends TreeAdapterTypeMap> extends ParserStream<T> {
constructor(options?: any) {
super(options);

Expand Down
11 changes: 5 additions & 6 deletions packages/parse5-serializer-stream/lib/index.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
import { Readable } from 'node:stream';
import { Serializer, SerializerOptions } from 'parse5/lib/serializer/index.js';
import type { TreeAdapterTypeMap } from 'parse5/lib/tree-adapters/interface';

type Node = any;
export class SerializerStream<T extends TreeAdapterTypeMap> extends Readable {
private serializer: Serializer<T>;

export class SerializerStream extends Readable {
private serializer: Serializer;

constructor(node: Node, options: SerializerOptions) {
constructor(node: T['parentNode'], options: SerializerOptions<T>) {
super({ encoding: 'utf8' });

this.serializer = new Serializer(node, options);
Expand All @@ -17,7 +16,7 @@ export class SerializerStream extends Readable {
get() {
return '';
},
set: this.push.bind(this),
set: (data: string) => this.push(data),
});
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { SerializerStream } from '../lib/index.js';
import { generateSerializerTests } from '../../../test/utils/generate-serializer-tests.js';
import { WritableStreamStub } from '../../../test/utils/common.js';

generateSerializerTests('SerializerStream', 'SerializerStream', (document: any, opts: any) => {
generateSerializerTests('SerializerStream', 'SerializerStream', (document, opts) => {
const stream = new SerializerStream(document, opts);
const writable = new WritableStreamStub();

Expand Down
50 changes: 0 additions & 50 deletions packages/parse5/docs/tree-adapter/default/attribute.md

This file was deleted.

49 changes: 0 additions & 49 deletions packages/parse5/docs/tree-adapter/default/comment-node.md

This file was deleted.

30 changes: 0 additions & 30 deletions packages/parse5/docs/tree-adapter/default/document-fragment.md

This file was deleted.

50 changes: 0 additions & 50 deletions packages/parse5/docs/tree-adapter/default/document-type.md

This file was deleted.

40 changes: 0 additions & 40 deletions packages/parse5/docs/tree-adapter/default/document.md

This file was deleted.

80 changes: 0 additions & 80 deletions packages/parse5/docs/tree-adapter/default/element.md

This file was deleted.

12 changes: 0 additions & 12 deletions packages/parse5/docs/tree-adapter/default/interface-list.md

This file was deleted.

0 comments on commit 4385fde

Please sign in to comment.