11/**
2- * @typedef {import('hast').Element } Element
3- * @typedef {import('hast').ElementData } ElementData
4- * @typedef {import('hast').Nodes } Nodes
5- * @typedef {import('hast').Root } Root
6- * @typedef {import('hast').RootContent } RootContent
7- *
8- * @typedef {import('parse5').DefaultTreeAdapterMap } DefaultTreeAdapterMap
9- * @typedef {import('parse5').Token.ElementLocation } P5ElementLocation
10- * @typedef {import('parse5').Token.Location } P5Location
11- *
12- * @typedef {import('property-information').Schema } Schema
13- *
14- * @typedef {import('unist').Point } Point
15- * @typedef {import('unist').Position } Position
16- *
17- * @typedef {import('vfile').VFile } VFile
18- */
19-
20- /**
21- * @typedef {DefaultTreeAdapterMap['document'] } P5Document
22- * @typedef {DefaultTreeAdapterMap['documentFragment'] } P5DocumentFragment
23- * @typedef {DefaultTreeAdapterMap['documentType'] } P5DocumentType
24- * @typedef {DefaultTreeAdapterMap['commentNode'] } P5Comment
25- * @typedef {DefaultTreeAdapterMap['textNode'] } P5Text
26- * @typedef {DefaultTreeAdapterMap['element'] } P5Element
27- * @typedef {DefaultTreeAdapterMap['node'] } P5Node
28- * @typedef {DefaultTreeAdapterMap['template'] } P5Template
2+ * @import {ElementData, Element, Nodes, RootContent, Root} from 'hast'
3+ * @import {DefaultTreeAdapterMap, Token} from 'parse5'
4+ * @import {Schema} from 'property-information'
5+ * @import {Point, Position} from 'unist'
6+ * @import {VFile} from 'vfile'
297 */
308
319/**
@@ -76,7 +54,7 @@ const proto = Object.prototype
7654/**
7755 * Transform a `parse5` AST to hast.
7856 *
79- * @param {P5Node } tree
57+ * @param {DefaultTreeAdapterMap['node'] } tree
8058 * `parse5` tree to transform.
8159 * @param {Options | null | undefined } [options]
8260 * Configuration (optional).
@@ -102,7 +80,7 @@ export function fromParse5(tree, options) {
10280 *
10381 * @param {State } state
10482 * Info passed around about the current state.
105- * @param {P5Node } node
83+ * @param {DefaultTreeAdapterMap['node'] } node
10684 * p5 node.
10785 * @returns {Nodes }
10886 * hast node.
@@ -113,15 +91,20 @@ function one(state, node) {
11391
11492 switch ( node . nodeName ) {
11593 case '#comment' : {
116- const reference = /** @type {P5Comment } */ ( node )
94+ const reference = /** @type {DefaultTreeAdapterMap['commentNode'] } */ (
95+ node
96+ )
11797 result = { type : 'comment' , value : reference . data }
11898 patch ( state , reference , result )
11999 return result
120100 }
121101
122102 case '#document' :
123103 case '#document-fragment' : {
124- const reference = /** @type {P5Document | P5DocumentFragment } */ ( node )
104+ const reference =
105+ /** @type {DefaultTreeAdapterMap['document'] | DefaultTreeAdapterMap['documentFragment'] } */ (
106+ node
107+ )
125108 const quirksMode =
126109 'mode' in reference
127110 ? reference . mode === 'quirks' || reference . mode === 'limited-quirks'
@@ -148,22 +131,24 @@ function one(state, node) {
148131 }
149132
150133 case '#documentType' : {
151- const reference = /** @type {P5DocumentType } */ ( node )
134+ const reference = /** @type {DefaultTreeAdapterMap['documentType'] } */ (
135+ node
136+ )
152137 result = { type : 'doctype' }
153138 patch ( state , reference , result )
154139 return result
155140 }
156141
157142 case '#text' : {
158- const reference = /** @type {P5Text } */ ( node )
143+ const reference = /** @type {DefaultTreeAdapterMap['textNode'] } */ ( node )
159144 result = { type : 'text' , value : reference . value }
160145 patch ( state , reference , result )
161146 return result
162147 }
163148
164149 // Element.
165150 default : {
166- const reference = /** @type {P5Element } */ ( node )
151+ const reference = /** @type {DefaultTreeAdapterMap['element'] } */ ( node )
167152 result = element ( state , reference )
168153 return result
169154 }
@@ -175,7 +160,7 @@ function one(state, node) {
175160 *
176161 * @param {State } state
177162 * Info passed around about the current state.
178- * @param {Array<P5Node > } nodes
163+ * @param {Array<DefaultTreeAdapterMap['node'] > } nodes
179164 * Nodes.
180165 * @returns {Array<RootContent> }
181166 * hast nodes.
@@ -199,7 +184,7 @@ function all(state, nodes) {
199184 *
200185 * @param {State } state
201186 * Info passed around about the current state.
202- * @param {P5Element } node
187+ * @param {DefaultTreeAdapterMap['element'] } node
203188 * `parse5` node to transform.
204189 * @returns {Element }
205190 * hast node.
@@ -230,7 +215,7 @@ function element(state, node) {
230215
231216 // Switch content.
232217 if ( result . tagName === 'template' ) {
233- const reference = /** @type {P5Template } */ ( node )
218+ const reference = /** @type {DefaultTreeAdapterMap['template'] } */ ( node )
234219 const pos = reference . sourceCodeLocation
235220 const startTag = pos && pos . startTag && position ( pos . startTag )
236221 const endTag = pos && pos . endTag && position ( pos . endTag )
@@ -255,7 +240,7 @@ function element(state, node) {
255240 *
256241 * @param {State } state
257242 * Info passed around about the current state.
258- * @param {P5Node } from
243+ * @param {DefaultTreeAdapterMap['node'] } from
259244 * p5 node.
260245 * @param {Nodes } to
261246 * hast node.
@@ -280,7 +265,7 @@ function patch(state, from, to) {
280265 * Info passed around about the current state.
281266 * @param {Nodes } node
282267 * hast node.
283- * @param {P5ElementLocation } location
268+ * @param {Token.ElementLocation } location
284269 * p5 location info.
285270 * @returns {Position | undefined }
286271 * Position, or nothing.
@@ -337,7 +322,7 @@ function createLocation(state, node, location) {
337322/**
338323 * Turn a p5 location into a position.
339324 *
340- * @param {P5Location } loc
325+ * @param {Token.Location } loc
341326 * Location.
342327 * @returns {Position | undefined }
343328 * Position or nothing.
0 commit comments