1
1
/**
2
- * @typedef {import('mdast').Literal } Literal
3
2
* @typedef {import('mdast-util-from-markdown').Extension } FromMarkdownExtension
4
3
* @typedef {import('mdast-util-from-markdown').Handle } FromMarkdownHandle
5
4
* @typedef {import('mdast-util-to-markdown').Options } ToMarkdownExtension
6
5
* @typedef {import('mdast-util-to-markdown').Handle } ToMarkdownHandle
7
- * @typedef {import('estree-jsx').Program } Estree
8
- *
9
- * @typedef {Literal & {type: 'mdxFlowExpression', data: {estree?: Estree}} } MDXFlowExpression
10
- * @typedef {Literal & {type: 'mdxSpanExpression', data: {estree?: Estree}} } MDXSpanExpression
6
+ * @typedef {import('estree-jsx').Program } Program
7
+ * @typedef {import('./complex-types').MDXFlowExpression } MDXFlowExpression
8
+ * @typedef {import('./complex-types').MDXTextExpression } MDXTextExpression
11
9
*/
12
10
13
11
import stripIndent from 'strip-indent'
@@ -42,29 +40,29 @@ export const mdxExpressionToMarkdown = {
42
40
43
41
/** @type {FromMarkdownHandle } */
44
42
function enterMdxFlowExpression ( token ) {
45
- // @ts -expect-error: fine.
46
43
this . enter ( { type : 'mdxFlowExpression' , value : '' } , token )
47
44
this . buffer ( )
48
45
}
49
46
50
47
/** @type {FromMarkdownHandle } */
51
48
function enterMdxTextExpression ( token ) {
52
- // @ts -expect-error: fine.
53
49
this . enter ( { type : 'mdxTextExpression' , value : '' } , token )
54
50
this . buffer ( )
55
51
}
56
52
57
53
/** @type {FromMarkdownHandle } */
58
54
function exitMdxExpression ( token ) {
59
55
const value = this . resume ( )
60
- const node = this . exit ( token )
61
-
56
+ /** @type {Program|undefined } */
57
+ // @ts -expect-error: estree.
58
+ const estree = token . estree
59
+ const node = /** @type {MDXFlowExpression|MDXTextExpression } */ (
60
+ this . exit ( token )
61
+ )
62
62
node . value = token . type === 'mdxFlowExpression' ? dedent ( value ) : value
63
63
64
- // @ts -expect-error: estree.
65
- if ( token . estree ) {
66
- // @ts -expect-error: estree.
67
- node . data = { estree : token . estree }
64
+ if ( estree ) {
65
+ node . data = { estree}
68
66
}
69
67
}
70
68
@@ -76,7 +74,7 @@ function exitMdxExpressionData(token) {
76
74
77
75
/**
78
76
* @type {ToMarkdownHandle }
79
- * @param {MDXFlowExpression|MDXSpanExpression } node
77
+ * @param {MDXFlowExpression|MDXTextExpression } node
80
78
*/
81
79
function handleMdxExpression ( node ) {
82
80
const value = node . value || ''
0 commit comments