Skip to content

Commit b859b50

Browse files
authored
Improve types (#4)
1 parent f4d59b2 commit b859b50

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

68 files changed

+885
-503
lines changed

.eslintrc.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ module.exports = {
88
"@typescript-eslint/no-non-null-asserted-optional-chain": "off",
99
"@typescript-eslint/no-unused-vars": "error",
1010
"@typescript-eslint/no-explicit-any": "off",
11+
"@typescript-eslint/ban-ts-comment": "off",
1112
},
1213
overrides: [
1314
{

src/constants/node-types.ts

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,20 +19,21 @@ export enum NodeTypes {
1919
OpenTagEnd = "OpenTagEnd",
2020
OpenTagStart = "OpenTagStart",
2121
DoctypeStart = "DoctypeStart",
22+
DoctypeAttribute = "DoctypeAttribute",
2223
DoctypeEnd = "DoctypeEnd",
2324

2425
ScriptTag = "ScriptTag",
25-
OpenTagStartScript = "OpenTagStartScript",
26-
OpenTagEndScript = "OpenTagEndScript",
26+
OpenScriptTagStart = "OpenScriptTagStart",
27+
OpenScriptTagEnd = "OpenScriptTagEnd",
2728
ScriptTagContent = "ScriptTagContent",
2829

2930
StyleTag = "StyleTag",
30-
OpenTagStartStyle = "OpenTagStartStyle",
31-
OpenTagEndStyle = "OpenTagEndStyle",
31+
OpenStyleTagStart = "OpenStyleTagStart",
32+
OpenStyleTagEnd = "OpenStyleTagEnd",
3233
StyleTagContent = "StyleTagContent",
33-
CloseTagStyle = "CloseTagStyle",
34+
CloseStyleTag = "CloseStyleTag",
3435

35-
CloseTagScript = "CloseTagScript",
36+
CloseScriptTag = "CloseScriptTag",
3637
DoctypeAttributeValue = "DoctypeAttributeValue",
3738
DoctypeAttributeWrapperStart = "DoctypeAttributeWrapperStart",
3839
DoctypeAttributeWrapperEnd = "DoctypeAttributeWrapperEnd",

src/constants/token-types.ts

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,27 @@
11
export enum TokenTypes {
22
Text = "Text",
3-
43
OpenTagStart = "OpenTagStart",
54
OpenTagEnd = "OpenTagEnd",
65
CloseTag = "CloseTag",
7-
86
AttributeKey = "AttributeKey",
97
AttributeAssignment = "AttributeAssignment",
108
AttributeValueWrapperStart = "AttributeValueWrapperStart",
119
AttributeValue = "AttributeValue",
1210
AttributeValueWrapperEnd = "AttributeValueWrapperEnd",
13-
1411
DoctypeStart = "DoctypeStart",
1512
DoctypeAttributeValue = "DoctypeAttributeValue",
1613
DoctypeAttributeWrapperStart = "DoctypeAttributeWrapperStart",
1714
DoctypeAttributeWrapperEnd = "DoctypeAttributeWrapperEnd",
1815
DoctypeEnd = "DoctypeEnd",
19-
2016
CommentStart = "CommentStart",
2117
CommentContent = "CommentContent",
2218
CommentEnd = "CommentEnd",
23-
24-
OpenTagStartScript = "OpenTagStartScript",
25-
OpenTagEndScript = "OpenTagEndScript",
19+
OpenScriptTagStart = "OpenScriptTagStart",
20+
OpenScriptTagEnd = "OpenScriptTagEnd",
2621
ScriptTagContent = "ScriptTagContent",
27-
CloseTagScript = "CloseTagScript",
28-
29-
OpenTagStartStyle = "OpenTagStartStyle",
30-
OpenTagEndStyle = "OpenTagEndStyle",
22+
CloseScriptTag = "CloseScriptTag",
23+
OpenStyleTagStart = "OpenStyleTagStart",
24+
OpenStyleTagEnd = "OpenStyleTagEnd",
3125
StyleTagContent = "StyleTagContent",
32-
CloseTagStyle = "CloseTagStyle",
26+
CloseStyleTag = "CloseStyleTag",
3327
}

src/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
export { parse } from "./parser";
22
export { NodeTypes } from "./constants/node-types";
33
export { TokenTypes } from "./constants/token-types";
4+
export { AnyToken } from "./types/token";
45
export * from "./types/node";

src/parser/parse.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,13 @@
11
import { constructTree } from "../tree-constructor";
22
import { tokenize } from "../tokenizer";
3-
import { DocumentNode, Token } from "../types";
3+
import { AnyToken, DocumentNode } from "../types";
44
import { clearParent } from "../utils";
55

6-
export function parse(html: string): { ast: DocumentNode; tokens: Token[] } {
6+
export function parse(html: string): { ast: DocumentNode; tokens: AnyToken[] } {
77
const { tokens } = tokenize(html, undefined);
88
const { ast } = constructTree(tokens, undefined);
9-
clearParent(ast);
109
return {
11-
ast,
10+
ast: clearParent(ast),
1211
tokens,
1312
};
1413
}

src/tokenizer/__tests__/__output__/script-elements-attributes.ts

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ export default [
4747
},
4848
},
4949
{
50-
type: TokenTypes.OpenTagStartScript,
50+
type: TokenTypes.OpenScriptTagStart,
5151
value: "<script",
5252
range: [25, 32],
5353
loc: {
@@ -212,7 +212,7 @@ export default [
212212
},
213213
},
214214
{
215-
type: TokenTypes.OpenTagEndScript,
215+
type: TokenTypes.OpenScriptTagEnd,
216216
value: ">",
217217
range: [79, 80],
218218
loc: {
@@ -242,7 +242,7 @@ export default [
242242
},
243243
},
244244
{
245-
type: TokenTypes.CloseTagScript,
245+
type: TokenTypes.CloseScriptTag,
246246
value: "</script>",
247247
range: [109, 118],
248248
loc: {
@@ -272,7 +272,7 @@ export default [
272272
},
273273
},
274274
{
275-
type: TokenTypes.OpenTagStartScript,
275+
type: TokenTypes.OpenScriptTagStart,
276276
value: "<script",
277277
range: [122, 129],
278278
loc: {
@@ -377,7 +377,7 @@ export default [
377377
},
378378
},
379379
{
380-
type: TokenTypes.OpenTagEndScript,
380+
type: TokenTypes.OpenScriptTagEnd,
381381
value: ">",
382382
range: [169, 170],
383383
loc: {
@@ -407,7 +407,7 @@ export default [
407407
},
408408
},
409409
{
410-
type: TokenTypes.CloseTagScript,
410+
type: TokenTypes.CloseScriptTag,
411411
value: "</script>",
412412
range: [218, 227],
413413
loc: {
@@ -467,7 +467,7 @@ export default [
467467
},
468468
},
469469
{
470-
type: TokenTypes.OpenTagStartScript,
470+
type: TokenTypes.OpenScriptTagStart,
471471
value: "<script",
472472
range: [236, 243],
473473
loc: {
@@ -572,7 +572,7 @@ export default [
572572
},
573573
},
574574
{
575-
type: TokenTypes.OpenTagEndScript,
575+
type: TokenTypes.OpenScriptTagEnd,
576576
value: ">",
577577
range: [272, 273],
578578
loc: {
@@ -602,7 +602,7 @@ export default [
602602
},
603603
},
604604
{
605-
type: TokenTypes.CloseTagScript,
605+
type: TokenTypes.CloseScriptTag,
606606
value: "</script>",
607607
range: [298, 307],
608608
loc: {

src/tokenizer/__tests__/__output__/script-elements.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ export default [
6262
},
6363
},
6464
{
65-
type: TokenTypes.OpenTagStartScript,
65+
type: TokenTypes.OpenScriptTagStart,
6666
value: "<script",
6767
range: [22, 29],
6868
loc: {
@@ -77,7 +77,7 @@ export default [
7777
},
7878
},
7979
{
80-
type: TokenTypes.OpenTagEndScript,
80+
type: TokenTypes.OpenScriptTagEnd,
8181
value: ">",
8282
range: [29, 30],
8383
loc: {
@@ -107,7 +107,7 @@ export default [
107107
},
108108
},
109109
{
110-
type: TokenTypes.CloseTagScript,
110+
type: TokenTypes.CloseScriptTag,
111111
value: "</script>",
112112
range: [53, 62],
113113
loc: {

src/tokenizer/__tests__/__output__/style-elements-attributes.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { TokenTypes } from "../../../constants";
22

33
export default [
44
{
5-
type: TokenTypes.OpenTagStartStyle,
5+
type: TokenTypes.OpenStyleTagStart,
66
value: "<style",
77
range: [0, 6],
88
loc: {
@@ -167,7 +167,7 @@ export default [
167167
},
168168
},
169169
{
170-
type: TokenTypes.OpenTagEndStyle,
170+
type: TokenTypes.OpenStyleTagEnd,
171171
value: ">",
172172
range: [41, 42],
173173
loc: {
@@ -197,7 +197,7 @@ export default [
197197
},
198198
},
199199
{
200-
type: TokenTypes.CloseTagStyle,
200+
type: TokenTypes.CloseStyleTag,
201201
value: "</style>",
202202
range: [85, 93],
203203
loc: {
@@ -272,7 +272,7 @@ export default [
272272
},
273273
},
274274
{
275-
type: TokenTypes.OpenTagStartStyle,
275+
type: TokenTypes.OpenStyleTagStart,
276276
value: "<style",
277277
range: [103, 109],
278278
loc: {
@@ -392,7 +392,7 @@ export default [
392392
},
393393
},
394394
{
395-
type: TokenTypes.OpenTagEndStyle,
395+
type: TokenTypes.OpenStyleTagEnd,
396396
value: ">",
397397
range: [163, 164],
398398
loc: {
@@ -422,7 +422,7 @@ export default [
422422
},
423423
},
424424
{
425-
type: TokenTypes.CloseTagStyle,
425+
type: TokenTypes.CloseStyleTag,
426426
value: "</style>",
427427
range: [213, 221],
428428
loc: {

src/tokenizer/__tests__/__output__/style-elements.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ export default [
1717
},
1818
},
1919
{
20-
type: TokenTypes.OpenTagStartStyle,
20+
type: TokenTypes.OpenStyleTagStart,
2121
value: "<style",
2222
range: [14, 20],
2323
loc: {
@@ -32,7 +32,7 @@ export default [
3232
},
3333
},
3434
{
35-
type: TokenTypes.OpenTagEndStyle,
35+
type: TokenTypes.OpenStyleTagEnd,
3636
value: ">",
3737
range: [20, 21],
3838
loc: {
@@ -62,7 +62,7 @@ export default [
6262
},
6363
},
6464
{
65-
type: TokenTypes.CloseTagStyle,
65+
type: TokenTypes.CloseStyleTag,
6666
value: "</style>",
6767
range: [64, 72],
6868
loc: {
@@ -137,7 +137,7 @@ export default [
137137
},
138138
},
139139
{
140-
type: TokenTypes.OpenTagStartStyle,
140+
type: TokenTypes.OpenStyleTagStart,
141141
value: "<style",
142142
range: [82, 88],
143143
loc: {
@@ -152,7 +152,7 @@ export default [
152152
},
153153
},
154154
{
155-
type: TokenTypes.OpenTagEndStyle,
155+
type: TokenTypes.OpenStyleTagEnd,
156156
value: ">",
157157
range: [88, 89],
158158
loc: {
@@ -182,7 +182,7 @@ export default [
182182
},
183183
},
184184
{
185-
type: TokenTypes.CloseTagStyle,
185+
type: TokenTypes.CloseStyleTag,
186186
value: "</style>",
187187
range: [138, 146],
188188
loc: {

0 commit comments

Comments
 (0)