Skip to content

Commit fcb5faf

Browse files
committed
Refactor code-style
* Add more docs to JSDoc
1 parent 2513bda commit fcb5faf

File tree

2 files changed

+32
-13
lines changed

2 files changed

+32
-13
lines changed

lib/index.js

Lines changed: 31 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,25 +4,35 @@
44
* @typedef {import('mdast').HTML} HTML
55
* @typedef {import('mdast-util-mdx-expression').MDXFlowExpression} MDXFlowExpression
66
* @typedef {import('mdast-util-mdx-expression').MDXTextExpression} MDXTextExpression
7-
* @typedef {Root|Content} Node
8-
*
9-
* @typedef {string|number|boolean} MarkerParameterValue
10-
* @typedef {Record<string, MarkerParameterValue>} MarkerParameters
7+
*/
8+
9+
/**
10+
* @typedef {Root | Content} Node
1111
*
1212
* @typedef Mdx1CommentNode
1313
* @property {'comment'} type
1414
* @property {string} value
1515
*
16+
* @typedef {string | number | boolean} MarkerParameterValue
17+
* Value.
18+
*
19+
* If it looks like a number (to JavaScript), it’s cast as number.
20+
* The strings `true` and `false` are turned into their corresponding
21+
* booleans.
22+
* The empty string is also considered the `true` boolean.
23+
* @typedef {Record<string, MarkerParameterValue>} MarkerParameters
24+
* Parameters.
25+
*
1626
* @typedef Marker
1727
* Comment marker.
1828
* @property {string} name
1929
* Name of marker.
2030
* @property {string} attributes
2131
* Value after name.
22-
* @property {MarkerParameters|null} parameters
32+
* @property {MarkerParameters | null} parameters
2333
* Parsed attributes, with decimal numbers, `true`, and `false` are casted to
2434
* numbers and booleans.
25-
* @property {HTML|Mdx1CommentNode|MDXFlowExpression|MDXTextExpression} node
35+
* @property {HTML | Mdx1CommentNode | MDXFlowExpression | MDXTextExpression} node
2636
* Reference to given node.
2737
*/
2838

@@ -34,12 +44,13 @@ const markerExpression = new RegExp(
3444
'(\\s*<!--' + commentExpression.source + '-->\\s*)'
3545
)
3646

47+
// To do: next major: replace `null` with `undefined` in API output.
3748
/**
3849
* Parse a comment marker.
3950
*
4051
* @param {unknown} value
4152
* `Node` to parse.
42-
* @returns {Marker|null}
53+
* @returns {Marker | null}
4354
* Information, when applicable.
4455
*/
4556
export function commentMarker(value) {
@@ -52,7 +63,7 @@ export function commentMarker(value) {
5263
value.type === 'mdxTextExpression')
5364
) {
5465
let offset = 2
55-
/** @type {RegExpMatchArray|null|undefined} */
66+
/** @type {RegExpMatchArray | null | undefined} */
5667
let match
5768

5869
// @ts-expect-error: MDX@1
@@ -87,10 +98,12 @@ export function commentMarker(value) {
8798
}
8899

89100
/**
90-
* Parse `value` into an object.
101+
* Parse a string of “attributes”.
91102
*
92103
* @param {string} value
93-
* @returns {MarkerParameters|null}
104+
* Attributes.
105+
* @returns {MarkerParameters | null}
106+
* Parameters.
94107
*/
95108
function parseParameters(value) {
96109
/** @type {MarkerParameters} */
@@ -111,18 +124,20 @@ function parseParameters(value) {
111124
* @param {string} $2
112125
* @param {string} $3
113126
* @param {string} $4
127+
* @returns {string}
114128
*/
115129
// eslint-disable-next-line max-params
116130
function replacer(_, $1, $2, $3, $4) {
117131
/** @type {MarkerParameterValue} */
118132
let value = $2 || $3 || $4 || ''
133+
const number = Number(value)
119134

120135
if (value === 'true' || value === '') {
121136
value = true
122137
} else if (value === 'false') {
123138
value = false
124-
} else if (!Number.isNaN(Number(value))) {
125-
value = Number(value)
139+
} else if (!Number.isNaN(number)) {
140+
value = number
126141
}
127142

128143
parameters[$1] = value
@@ -132,8 +147,12 @@ function parseParameters(value) {
132147
}
133148

134149
/**
150+
* Check if something looks like a node.
151+
*
135152
* @param {unknown} value
153+
* Thing.
136154
* @returns {value is Node}
155+
* It’s a node!
137156
*/
138157
function isNode(value) {
139158
return Boolean(value && typeof value === 'object' && 'type' in value)

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,10 @@
3333
"index.js"
3434
],
3535
"dependencies": {
36+
"@types/mdast": "^3.0.0",
3637
"mdast-util-mdx-expression": "^1.1.0"
3738
},
3839
"devDependencies": {
39-
"@types/mdast": "^3.0.10",
4040
"@types/tape": "^4.0.0",
4141
"c8": "^7.0.0",
4242
"prettier": "^2.0.0",

0 commit comments

Comments
 (0)