11/**
2- * @typedef {import('estree').Comment } Comment
3- * @typedef {import('estree').Directive } Directive
4- * @typedef {import('estree').ModuleDeclaration } ModuleDeclaration
5- * @typedef {import('estree').Node } EstreeNode
6- * @typedef {import('estree').Statement } Statement
7- *
8- * @typedef {import('estree-jsx').JSXAttribute } JsxAttribute
9- * @typedef {import('estree-jsx').JSXElement } JsxElement
10- * @typedef {import('estree-jsx').JSXIdentifier } JsxIdentifier
11- * @typedef {import('estree-jsx').JSXMemberExpression } JsxMemberExpression
12- * @typedef {import('estree-jsx').JSXNamespacedName } JsxNamespacedName
13- *
14- * @typedef {import('mdast-util-mdx-jsx').MdxJsxAttribute } MdxJsxAttribute
15- * @typedef {import('mdast-util-mdx-jsx').MdxJsxAttributeValueExpression } MdxJsxAttributeValueExpression
16- * @typedef {import('mdast-util-mdx-jsx').MdxJsxExpressionAttribute } MdxJsxExpressionAttribute
17- *
18- * @typedef {import('hast').Nodes } HastNodes
19- * @typedef {import('hast').Parents } HastParents
20- *
21- * @typedef {import('property-information').Schema } Schema
22- */
23-
24- /**
25- * @typedef {JsxElement['openingElement']['name'] } JsxElementName
26- * @typedef {JsxAttribute['name'] } JsxAttributeName
27- * @typedef {JsxElement['children'][number] } JsxChild
2+ * @import {
3+ * JSXElement as JsxElement,
4+ * JSXExpressionContainer as JsxExpressionContainer,
5+ * JSXFragment as JsxFragment,
6+ * JSXIdentifier as JsxIdentifier,
7+ * JSXMemberExpression as JsxMemberExpression,
8+ * JSXNamespacedName as JsxNamespacedName,
9+ * JSXSpreadChild as JsxSpreadChild,
10+ * JSXText as JsxText,
11+ * } from 'estree-jsx'
12+ * @import {Comment, Directive, ModuleDeclaration, Node as EstreeNode, Statement} from 'estree'
13+ * @import {MdxJsxAttribute, MdxJsxAttributeValueExpression, MdxJsxExpressionAttribute} from 'mdast-util-mdx-jsx'
14+ * @import {Nodes as HastNodes, Parents as HastParents} from 'hast'
15+ * @import {Schema} from 'property-information'
2816 */
2917
3018/**
4028 * Expected hast node.
4129 * @param {State } state
4230 * Info passed around about the current state.
43- * @returns {JsxChild | null | undefined }
31+ * @returns {JsxElement | JsxExpressionContainer | JsxFragment | JsxSpreadChild | JsxText | null | undefined }
4432 * estree node.
4533 *
4634 * @typedef Options
7866 *
7967 * @typedef State
8068 * Info passed around about the current state.
81- * @property {(parent: HastParents) => Array<JsxChild > } all
69+ * @property {(parent: HastParents) => Array<JsxElement | JsxExpressionContainer | JsxFragment | JsxSpreadChild | JsxText > } all
8270 * Transform children of a hast parent to estree.
8371 * @property {Array<Comment> } comments
8472 * List of estree comments.
85- * @property {(name: string) => JsxAttributeName } createJsxAttributeName
73+ * @property {(name: string) => JsxIdentifier | JsxNamespacedName } createJsxAttributeName
8674 * Create a JSX attribute name.
87- * @property {(name: string) => JsxElementName } createJsxElementName
75+ * @property {(name: string) => JsxIdentifier | JsxMemberExpression | JsxNamespacedName } createJsxElementName
8876 * Create a JSX element name.
8977 * @property {ElementAttributeNameCase } elementAttributeNameCase
9078 * Casing to use for attribute names.
9179 * @property {Array<Directive | ModuleDeclaration | Statement> } esm
9280 * List of top-level estree nodes.
93- * @property {(node: any) => JsxChild | null | undefined } handle
81+ * @property {(node: any) => JsxElement | JsxExpressionContainer | JsxFragment | JsxSpreadChild | JsxText | null | undefined } handle
9482 * Transform a hast node to estree.
9583 * @property {(from: HastNodes | MdxJsxAttribute | MdxJsxAttributeValueExpression | MdxJsxExpressionAttribute, to: Comment | EstreeNode) => undefined } inherit
9684 * Take positional info and data from `from` (use `patch` if you don’t want data).
@@ -164,7 +152,7 @@ export function createState(options) {
164152 /**
165153 * @this {State}
166154 * @param {any } node
167- * @returns {JsxChild | null | undefined }
155+ * @returns {JsxElement | JsxExpressionContainer | JsxFragment | JsxSpreadChild | JsxText | null | undefined }
168156 */
169157 function handle ( node ) {
170158 return one ( node , this )
@@ -202,13 +190,13 @@ function unknown(node) {
202190 * Info passed around about the current state.
203191 * @param {HastParents } parent
204192 * hast node whose children to transform.
205- * @returns {Array<JsxChild > }
193+ * @returns {Array<JsxElement | JsxExpressionContainer | JsxFragment | JsxSpreadChild | JsxText > }
206194 * estree nodes.
207195 */
208196function all ( parent ) {
209197 const children = parent . children || [ ]
210198 let index = - 1
211- /** @type {Array<JsxChild > } */
199+ /** @type {Array<JsxElement | JsxExpressionContainer | JsxFragment | JsxSpreadChild | JsxText > } */
212200 const results = [ ]
213201 const ignoreLineBreak =
214202 this . schema . space === 'html' &&
@@ -302,7 +290,7 @@ function patch(from, to) {
302290 * Create a JSX attribute name.
303291 *
304292 * @param {string } name
305- * @returns {JsxAttributeName }
293+ * @returns {JsxIdentifier | JsxNamespacedName }
306294 */
307295function createJsxAttributeName ( name ) {
308296 const node = createJsxNameFromString ( name )
@@ -320,7 +308,7 @@ function createJsxAttributeName(name) {
320308 * Create a JSX element name.
321309 *
322310 * @param {string } name
323- * @returns {JsxElementName }
311+ * @returns {JsxIdentifier | JsxMemberExpression | JsxNamespacedName }
324312 */
325313function createJsxElementName ( name ) {
326314 return createJsxNameFromString ( name )
0 commit comments