Skip to content

Commit bceb8b8

Browse files
committed
Refactor code-style
1 parent 99b2857 commit bceb8b8

File tree

3 files changed

+31
-26
lines changed

3 files changed

+31
-26
lines changed

index.js

Lines changed: 28 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,47 @@
1+
/// <reference types="remark-parse" />
2+
/// <reference types="remark-stringify" />
3+
14
/**
25
* @typedef {import('mdast').Root} Root
3-
* @typedef {import('micromark-extension-gfm').Options & import('mdast-util-gfm').Options} Options
6+
* @typedef {import('mdast-util-gfm').Options} MdastOptions
7+
* @typedef {import('micromark-extension-gfm').Options} MicromarkOptions
48
* @typedef {import('unified').Processor<Root>} Processor
59
*/
610

7-
import {gfm} from 'micromark-extension-gfm'
11+
/**
12+
* @typedef {MicromarkOptions & MdastOptions} Options
13+
* Configuration.
14+
*/
15+
816
import {gfmFromMarkdown, gfmToMarkdown} from 'mdast-util-gfm'
17+
import {gfm} from 'micromark-extension-gfm'
18+
19+
/** @type {Options} */
20+
const emptyOptions = {}
921

1022
/**
11-
* Plugin to support GFM (autolink literals, footnotes, strikethrough, tables, tasklists).
23+
* Add support GFM (autolink literals, footnotes, strikethrough, tables, tasklists).
1224
*
13-
* @param {Options | null | undefined} [options='yaml']
14-
* Configuration (default: `'yaml'`).
25+
* @param {Options | null | undefined} [options]
26+
* Configuration (optional).
1527
* @returns {undefined}
1628
* Nothing.
1729
*/
18-
export default function remarkGfm(options = {}) {
30+
export default function remarkGfm(options) {
1931
// @ts-expect-error: TS is wrong about `this`.
2032
// eslint-disable-next-line unicorn/no-this-assignment
2133
const self = /** @type {Processor} */ (this)
34+
const settings = options || emptyOptions
2235
const data = self.data()
2336

24-
add('micromarkExtensions', gfm(options))
25-
add('fromMarkdownExtensions', gfmFromMarkdown())
26-
add('toMarkdownExtensions', gfmToMarkdown(options))
27-
28-
/**
29-
* @param {string} field
30-
* @param {unknown} value
31-
*/
32-
function add(field, value) {
33-
const list = /** @type {unknown[]} */ (
34-
// Other extensions
35-
/* c8 ignore next 2 */
36-
// @ts-expect-error: to do: remove when remark is released.
37-
data[field] || (data[field] = [])
38-
)
37+
const micromarkExtensions =
38+
data.micromarkExtensions || (data.micromarkExtensions = [])
39+
const fromMarkdownExtensions =
40+
data.fromMarkdownExtensions || (data.fromMarkdownExtensions = [])
41+
const toMarkdownExtensions =
42+
data.toMarkdownExtensions || (data.toMarkdownExtensions = [])
3943

40-
list.push(value)
41-
}
44+
micromarkExtensions.push(gfm(settings))
45+
fromMarkdownExtensions.push(gfmFromMarkdown())
46+
toMarkdownExtensions.push(gfmToMarkdown(settings))
4247
}

package.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,14 +40,16 @@
4040
"@types/mdast": "^4.0.0",
4141
"mdast-util-gfm": "^3.0.0",
4242
"micromark-extension-gfm": "^3.0.0",
43+
"remark-parse": "^11.0.0",
44+
"remark-stringify": "^11.0.0",
4345
"unified": "^11.0.0"
4446
},
4547
"devDependencies": {
4648
"@types/node": "^20.0.0",
4749
"c8": "^8.0.0",
4850
"is-hidden": "^2.0.0",
4951
"prettier": "^3.0.0",
50-
"remark": "^14.0.0",
52+
"remark": "^15.0.0",
5153
"remark-cli": "^11.0.0",
5254
"remark-preset-wooorm": "^9.0.0",
5355
"string-width": "^6.0.0",

test/index.js

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,8 +62,6 @@ test('fixtures', async function (t) {
6262
}
6363

6464
const proc = remark().use(remarkGfm, config)
65-
/** @type {Root} */
66-
// @ts-expect-error: remove when remark is released.
6765
const actual = proc.parse(input)
6866

6967
try {

0 commit comments

Comments
 (0)