Skip to content

Commit 53907b4

Browse files
committed
Refactor code-style
1 parent c0ab80a commit 53907b4

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+4409
-3256
lines changed

index.d.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ import type {Info, State} from './lib/types.js'
1515
* }
1616
* ```
1717
*/
18-
// eslint-disable-next-line @typescript-eslint/consistent-type-definitions
1918
export interface ConstructNameMap {
2019
/**
2120
* Whole autolink.
@@ -322,6 +321,7 @@ export type {
322321
Tracker,
323322
Unsafe
324323
} from './lib/types.js'
324+
// To do: next major: remove.
325325
// Deprecated.
326326
export type SafeOptions = Info
327327
export type Context = State

index.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
1+
// Note: extra types exposed from `index.d.ts`.
12
export {toMarkdown} from './lib/index.js'
23
export {handle as defaultHandlers} from './lib/handle/index.js'

lib/configure.js

Lines changed: 52 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
* @typedef {import('./types.js').State} State
44
*/
55

6+
const own = {}.hasOwnProperty
7+
68
/**
79
* @param {State} base
810
* @param {Options} extension
@@ -21,19 +23,58 @@ export function configure(base, extension) {
2123
}
2224

2325
for (key in extension) {
24-
if (key === 'extensions') {
25-
// Empty.
26-
} else if (key === 'unsafe' || key === 'join') {
27-
/* c8 ignore next 2 */
28-
// @ts-expect-error: hush.
29-
base[key] = [...(base[key] || []), ...(extension[key] || [])]
30-
} else if (key === 'handlers') {
31-
base[key] = Object.assign(base[key], extension[key] || {})
32-
} else {
33-
// @ts-expect-error: hush.
34-
base.options[key] = extension[key]
26+
if (own.call(extension, key)) {
27+
switch (key) {
28+
case 'extensions': {
29+
// Empty.
30+
break
31+
}
32+
33+
/* c8 ignore next 4 */
34+
case 'unsafe': {
35+
list(base[key], extension[key])
36+
break
37+
}
38+
39+
case 'join': {
40+
list(base[key], extension[key])
41+
break
42+
}
43+
44+
case 'handlers': {
45+
map(base[key], extension[key])
46+
break
47+
}
48+
49+
default: {
50+
// @ts-expect-error: matches.
51+
base.options[key] = extension[key]
52+
}
53+
}
3554
}
3655
}
3756

3857
return base
3958
}
59+
60+
/**
61+
* @template T
62+
* @param {Array<T>} left
63+
* @param {Array<T> | null | undefined} right
64+
*/
65+
function list(left, right) {
66+
if (right) {
67+
left.push(...right)
68+
}
69+
}
70+
71+
/**
72+
* @template T
73+
* @param {Record<string, T>} left
74+
* @param {Record<string, T> | null | undefined} right
75+
*/
76+
function map(left, right) {
77+
if (right) {
78+
Object.assign(left, right)
79+
}
80+
}

lib/handle/blockquote.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
/**
22
* @typedef {import('mdast').Blockquote} Blockquote
3-
* @typedef {import('../types.js').Parent} Parent
4-
* @typedef {import('../types.js').State} State
3+
* @typedef {import('mdast').Parents} Parents
54
* @typedef {import('../types.js').Info} Info
65
* @typedef {import('../types.js').Map} Map
6+
* @typedef {import('../types.js').State} State
77
*/
88

99
/**
1010
* @param {Blockquote} node
11-
* @param {Parent | undefined} _
11+
* @param {Parents | undefined} _
1212
* @param {State} state
1313
* @param {Info} info
1414
* @returns {string}

lib/handle/break.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
/**
22
* @typedef {import('mdast').Break} Break
3-
* @typedef {import('../types.js').Parent} Parent
4-
* @typedef {import('../types.js').State} State
3+
* @typedef {import('mdast').Parents} Parents
54
* @typedef {import('../types.js').Info} Info
5+
* @typedef {import('../types.js').State} State
66
*/
77

88
import {patternInScope} from '../util/pattern-in-scope.js'
99

1010
/**
1111
* @param {Break} _
12-
* @param {Parent | undefined} _1
12+
* @param {Parents | undefined} _1
1313
* @param {State} state
1414
* @param {Info} info
1515
* @returns {string}

lib/handle/code.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
/**
22
* @typedef {import('mdast').Code} Code
3-
* @typedef {import('../types.js').Parent} Parent
4-
* @typedef {import('../types.js').State} State
3+
* @typedef {import('mdast').Parents} Parents
54
* @typedef {import('../types.js').Info} Info
65
* @typedef {import('../types.js').Map} Map
6+
* @typedef {import('../types.js').State} State
77
*/
88

99
import {longestStreak} from 'longest-streak'
@@ -12,7 +12,7 @@ import {checkFence} from '../util/check-fence.js'
1212

1313
/**
1414
* @param {Code} node
15-
* @param {Parent | undefined} _
15+
* @param {Parents | undefined} _
1616
* @param {State} state
1717
* @param {Info} info
1818
* @returns {string}

lib/handle/definition.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
/**
22
* @typedef {import('mdast').Definition} Definition
3-
* @typedef {import('../types.js').Parent} Parent
4-
* @typedef {import('../types.js').State} State
3+
* @typedef {import('mdast').Parents} Parents
54
* @typedef {import('../types.js').Info} Info
5+
* @typedef {import('../types.js').State} State
66
*/
77

88
import {checkQuote} from '../util/check-quote.js'
99

1010
/**
1111
* @param {Definition} node
12-
* @param {Parent | undefined} _
12+
* @param {Parents | undefined} _
1313
* @param {State} state
1414
* @param {Info} info
1515
* @returns {string}

lib/handle/emphasis.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
/**
22
* @typedef {import('mdast').Emphasis} Emphasis
3-
* @typedef {import('../types.js').Parent} Parent
4-
* @typedef {import('../types.js').State} State
3+
* @typedef {import('mdast').Parents} Parents
54
* @typedef {import('../types.js').Info} Info
5+
* @typedef {import('../types.js').State} State
66
*/
77

88
import {checkEmphasis} from '../util/check-emphasis.js'
@@ -15,7 +15,7 @@ emphasis.peek = emphasisPeek
1515
// Do we need to safeguard against that?
1616
/**
1717
* @param {Emphasis} node
18-
* @param {Parent | undefined} _
18+
* @param {Parents | undefined} _
1919
* @param {State} state
2020
* @param {Info} info
2121
* @returns {string}
@@ -39,7 +39,7 @@ export function emphasis(node, _, state, info) {
3939

4040
/**
4141
* @param {Emphasis} _
42-
* @param {Parent | undefined} _1
42+
* @param {Parents | undefined} _1
4343
* @param {State} state
4444
* @returns {string}
4545
*/

lib/handle/heading.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
/**
22
* @typedef {import('mdast').Heading} Heading
3-
* @typedef {import('../types.js').Parent} Parent
4-
* @typedef {import('../types.js').State} State
3+
* @typedef {import('mdast').Parents} Parents
54
* @typedef {import('../types.js').Info} Info
5+
* @typedef {import('../types.js').State} State
66
*/
77

88
import {formatHeadingAsSetext} from '../util/format-heading-as-setext.js'
99

1010
/**
1111
* @param {Heading} node
12-
* @param {Parent | undefined} _
12+
* @param {Parents | undefined} _
1313
* @param {State} state
1414
* @param {Info} info
1515
* @returns {string}

lib/handle/html.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
/**
2-
* @typedef {import('mdast').HTML} HTML
2+
* @typedef {import('mdast').Html} Html
33
*/
44

55
html.peek = htmlPeek
66

77
/**
8-
* @param {HTML} node
8+
* @param {Html} node
99
* @returns {string}
1010
*/
1111
export function html(node) {

lib/handle/image-reference.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
/**
22
* @typedef {import('mdast').ImageReference} ImageReference
3-
* @typedef {import('../types.js').Parent} Parent
4-
* @typedef {import('../types.js').State} State
3+
* @typedef {import('mdast').Parents} Parents
54
* @typedef {import('../types.js').Info} Info
5+
* @typedef {import('../types.js').State} State
66
*/
77

88
imageReference.peek = imageReferencePeek
99

1010
/**
1111
* @param {ImageReference} node
12-
* @param {Parent | undefined} _
12+
* @param {Parents | undefined} _
1313
* @param {State} state
1414
* @param {Info} info
1515
* @returns {string}

lib/handle/image.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
/**
22
* @typedef {import('mdast').Image} Image
3-
* @typedef {import('../types.js').Parent} Parent
4-
* @typedef {import('../types.js').State} State
3+
* @typedef {import('mdast').Parents} Parents
54
* @typedef {import('../types.js').Info} Info
5+
* @typedef {import('../types.js').State} State
66
*/
77

88
import {checkQuote} from '../util/check-quote.js'
@@ -11,7 +11,7 @@ image.peek = imagePeek
1111

1212
/**
1313
* @param {Image} node
14-
* @param {Parent | undefined} _
14+
* @param {Parents | undefined} _
1515
* @param {State} state
1616
* @param {Info} info
1717
* @returns {string}

lib/handle/inline-code.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/**
22
* @typedef {import('mdast').InlineCode} InlineCode
3-
* @typedef {import('../types.js').Parent} Parent
3+
* @typedef {import('mdast').Parents} Parents
44
* @typedef {import('../types.js').State} State
55
*/
66

@@ -10,7 +10,7 @@ inlineCode.peek = inlineCodePeek
1010

1111
/**
1212
* @param {InlineCode} node
13-
* @param {Parent | undefined} _
13+
* @param {Parents | undefined} _
1414
* @param {State} state
1515
* @returns {string}
1616
*/

lib/handle/link-reference.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
/**
22
* @typedef {import('mdast').LinkReference} LinkReference
3-
* @typedef {import('../types.js').Parent} Parent
4-
* @typedef {import('../types.js').State} State
3+
* @typedef {import('mdast').Parents} Parents
54
* @typedef {import('../types.js').Info} Info
5+
* @typedef {import('../types.js').State} State
66
*/
77

88
linkReference.peek = linkReferencePeek
99

1010
/**
1111
* @param {LinkReference} node
12-
* @param {Parent | undefined} _
12+
* @param {Parents | undefined} _
1313
* @param {State} state
1414
* @param {Info} info
1515
* @returns {string}

lib/handle/link.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
/**
22
* @typedef {import('mdast').Link} Link
3-
* @typedef {import('../types.js').Parent} Parent
4-
* @typedef {import('../types.js').State} State
5-
* @typedef {import('../types.js').Info} Info
3+
* @typedef {import('mdast').Parents} Parents
64
* @typedef {import('../types.js').Exit} Exit
5+
* @typedef {import('../types.js').Info} Info
6+
* @typedef {import('../types.js').State} State
77
*/
88

99
import {checkQuote} from '../util/check-quote.js'
@@ -13,7 +13,7 @@ link.peek = linkPeek
1313

1414
/**
1515
* @param {Link} node
16-
* @param {Parent | undefined} _
16+
* @param {Parents | undefined} _
1717
* @param {State} state
1818
* @param {Info} info
1919
* @returns {string}
@@ -107,7 +107,7 @@ export function link(node, _, state, info) {
107107

108108
/**
109109
* @param {Link} node
110-
* @param {Parent | undefined} _
110+
* @param {Parents | undefined} _
111111
* @param {State} state
112112
* @returns {string}
113113
*/

lib/handle/list-item.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
/**
22
* @typedef {import('mdast').ListItem} ListItem
3+
* @typedef {import('mdast').Parents} Parents
4+
* @typedef {import('../types.js').Info} Info
35
* @typedef {import('../types.js').Map} Map
4-
* @typedef {import('../types.js').Parent} Parent
56
* @typedef {import('../types.js').State} State
6-
* @typedef {import('../types.js').Info} Info
77
*/
88

99
import {checkBullet} from '../util/check-bullet.js'
1010
import {checkListItemIndent} from '../util/check-list-item-indent.js'
1111

1212
/**
1313
* @param {ListItem} node
14-
* @param {Parent | undefined} parent
14+
* @param {Parents | undefined} parent
1515
* @param {State} state
1616
* @param {Info} info
1717
* @returns {string}

lib/handle/list.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
/**
22
* @typedef {import('mdast').List} List
3-
* @typedef {import('../types.js').Parent} Parent
4-
* @typedef {import('../types.js').State} State
3+
* @typedef {import('mdast').Parents} Parents
54
* @typedef {import('../types.js').Info} Info
5+
* @typedef {import('../types.js').State} State
66
*/
77

88
import {checkBullet} from '../util/check-bullet.js'
@@ -13,7 +13,7 @@ import {checkRule} from '../util/check-rule.js'
1313

1414
/**
1515
* @param {List} node
16-
* @param {Parent | undefined} parent
16+
* @param {Parents | undefined} parent
1717
* @param {State} state
1818
* @param {Info} info
1919
* @returns {string}

0 commit comments

Comments
 (0)