Skip to content

Commit de6c1e6

Browse files
committed
Refactor to reorganize lib
1 parent 94c2074 commit de6c1e6

File tree

7 files changed

+82
-65
lines changed

7 files changed

+82
-65
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,4 @@ node_modules/
44
*.d.ts
55
.DS_Store
66
yarn.lock
7+
!/index.d.ts

index.d.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
export type {
2+
MdxFlowExpression,
3+
MdxTextExpression
4+
} from 'mdast-util-mdx-expression'
5+
export type {
6+
MdxJsxAttribute,
7+
MdxJsxAttributeValueExpression,
8+
MdxJsxExpressionAttribute,
9+
MdxJsxFlowElement,
10+
MdxJsxTextElement,
11+
ToMarkdownOptions
12+
} from 'mdast-util-mdx-jsx'
13+
export type {MdxjsEsm} from 'mdast-util-mdxjs-esm'
14+
15+
export {mdxFromMarkdown, mdxToMarkdown} from './lib/index.js'

index.js

Lines changed: 2 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -1,60 +1,2 @@
1-
/**
2-
* @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension
3-
* @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension
4-
*
5-
* @typedef {import('mdast-util-mdx-expression').MdxFlowExpression} MdxFlowExpression
6-
* @typedef {import('mdast-util-mdx-expression').MdxTextExpression} MdxTextExpression
7-
* @typedef {import('mdast-util-mdx-jsx').MdxJsxAttributeValueExpression} MdxJsxAttributeValueExpression
8-
* @typedef {import('mdast-util-mdx-jsx').MdxJsxAttribute} MdxJsxAttribute
9-
* @typedef {import('mdast-util-mdx-jsx').MdxJsxExpressionAttribute} MdxJsxExpressionAttribute
10-
* @typedef {import('mdast-util-mdx-jsx').MdxJsxFlowElement} MdxJsxFlowElement
11-
* @typedef {import('mdast-util-mdx-jsx').MdxJsxTextElement} MdxJsxTextElement
12-
* @typedef {import('mdast-util-mdx-jsx').ToMarkdownOptions} ToMarkdownOptions
13-
* @typedef {import('mdast-util-mdxjs-esm').MdxjsEsm} MdxjsEsm
14-
*/
15-
16-
import {
17-
mdxExpressionFromMarkdown,
18-
mdxExpressionToMarkdown
19-
} from 'mdast-util-mdx-expression'
20-
import {mdxJsxFromMarkdown, mdxJsxToMarkdown} from 'mdast-util-mdx-jsx'
21-
import {mdxjsEsmFromMarkdown, mdxjsEsmToMarkdown} from 'mdast-util-mdxjs-esm'
22-
23-
/**
24-
* Create an extension for `mdast-util-from-markdown` to enable MDX (ESM, JSX,
25-
* expressions).
26-
*
27-
* @returns {Array<FromMarkdownExtension>}
28-
* Extension for `mdast-util-from-markdown` to enable MDX (ESM, JSX,
29-
* expressions).
30-
*
31-
* When using the syntax extensions with `addResult`, ESM and expression
32-
* nodes will have `data.estree` fields set to ESTree `Program` node.
33-
*/
34-
export function mdxFromMarkdown() {
35-
return [
36-
mdxExpressionFromMarkdown(),
37-
mdxJsxFromMarkdown(),
38-
mdxjsEsmFromMarkdown()
39-
]
40-
}
41-
42-
/**
43-
* Create an extension for `mdast-util-to-markdown` to enable MDX (ESM, JSX,
44-
* expressions).
45-
*
46-
* @param {ToMarkdownOptions | null | undefined} [options]
47-
* Configuration (optional).
48-
* @returns {ToMarkdownExtension}
49-
* Extension for `mdast-util-to-markdown` to enable MDX (ESM, JSX,
50-
* expressions).
51-
*/
52-
export function mdxToMarkdown(options) {
53-
return {
54-
extensions: [
55-
mdxExpressionToMarkdown(),
56-
mdxJsxToMarkdown(options),
57-
mdxjsEsmToMarkdown()
58-
]
59-
}
60-
}
1+
// Note: types exposed from `index.d.ts`.
2+
export {mdxFromMarkdown, mdxToMarkdown} from './lib/index.js'

lib/index.js

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
/**
2+
* @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension
3+
* @typedef {import('mdast-util-mdx-jsx').ToMarkdownOptions} ToMarkdownOptions
4+
* @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension
5+
*/
6+
7+
import {
8+
mdxExpressionFromMarkdown,
9+
mdxExpressionToMarkdown
10+
} from 'mdast-util-mdx-expression'
11+
import {mdxJsxFromMarkdown, mdxJsxToMarkdown} from 'mdast-util-mdx-jsx'
12+
import {mdxjsEsmFromMarkdown, mdxjsEsmToMarkdown} from 'mdast-util-mdxjs-esm'
13+
14+
/**
15+
* Create an extension for `mdast-util-from-markdown` to enable MDX (ESM, JSX,
16+
* expressions).
17+
*
18+
* @returns {Array<FromMarkdownExtension>}
19+
* Extension for `mdast-util-from-markdown` to enable MDX (ESM, JSX,
20+
* expressions).
21+
*
22+
* When using the syntax extensions with `addResult`, ESM and expression
23+
* nodes will have `data.estree` fields set to ESTree `Program` node.
24+
*/
25+
export function mdxFromMarkdown() {
26+
return [
27+
mdxExpressionFromMarkdown(),
28+
mdxJsxFromMarkdown(),
29+
mdxjsEsmFromMarkdown()
30+
]
31+
}
32+
33+
/**
34+
* Create an extension for `mdast-util-to-markdown` to enable MDX (ESM, JSX,
35+
* expressions).
36+
*
37+
* @param {ToMarkdownOptions | null | undefined} [options]
38+
* Configuration (optional).
39+
* @returns {ToMarkdownExtension}
40+
* Extension for `mdast-util-to-markdown` to enable MDX (ESM, JSX,
41+
* expressions).
42+
*/
43+
export function mdxToMarkdown(options) {
44+
return {
45+
extensions: [
46+
mdxExpressionToMarkdown(),
47+
mdxJsxToMarkdown(options),
48+
mdxjsEsmToMarkdown()
49+
]
50+
}
51+
}

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
"main": "index.js",
3333
"types": "index.d.ts",
3434
"files": [
35+
"lib/",
3536
"index.d.ts",
3637
"index.js"
3738
],

readme.md

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -350,10 +350,17 @@ See their readmes for the node types supported in the tree:
350350
## Types
351351

352352
This package is fully typed with [TypeScript][].
353-
It exports the additional types `MdxFlowExpression`, `MdxTextExpression`,
354-
`MdxjsEsm`, `MdxJsxAttributeValueExpression`, `MdxJsxAttribute`,
355-
`MdxJsxExpressionAttribute`, `MdxJsxFlowElement`,
356-
`MdxJsxTextElement`, and [`ToMarkdownOptions`][api-to-markdown-options].
353+
It exports the additional types
354+
`MdxFlowExpression` and `MdxTextExpression`
355+
from `mdast-util-mdx-expression`;
356+
`MdxJsxAttribute`,
357+
`MdxJsxAttributeValueExpression`,
358+
`MdxJsxExpressionAttribute`,
359+
`MdxJsxFlowElement`,
360+
`MdxJsxTextElement`,
361+
and [`ToMarkdownOptions`][api-to-markdown-options]
362+
from `mdast-util-mdx-jsx`;
363+
and `MdxjsEsm` from `mdast-util-mdxjs-esm`.
357364

358365
It also registers the node types with `@types/mdast` and `@types/hast`.
359366
If you’re working with the syntax tree, make sure to import this utility

tsconfig.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,5 @@
1111
"target": "es2020"
1212
},
1313
"exclude": ["coverage/", "node_modules/"],
14-
"include": ["**/*.js"]
14+
"include": ["**/*.js", "index.d.ts"]
1515
}

0 commit comments

Comments
 (0)