Skip to content

Commit 12c9ee9

Browse files
committed
Change to pass undefined, not null
1 parent 07a2fbe commit 12c9ee9

File tree

4 files changed

+16
-13
lines changed

4 files changed

+16
-13
lines changed

index.test-d.ts

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -46,15 +46,15 @@ visit(sampleTree)
4646
// ## No test
4747
visit(sampleTree, function (node, index, parent) {
4848
expectType<Nodes>(node)
49-
expectType<number | null>(index)
50-
expectType<Parents | null>(parent)
49+
expectType<number | undefined>(index)
50+
expectType<Parents | undefined>(parent)
5151
})
5252

5353
visit(implicitTree, function (node, index, parent) {
5454
// Objects are too loose.
5555
expectAssignable<Node>(node)
5656
expectNotType<Node>(node)
57-
expectType<number | null>(index)
57+
expectType<number | undefined>(index)
5858
expectType<never>(parent)
5959
})
6060

@@ -63,8 +63,10 @@ visit(implicitTree, function (node, index, parent) {
6363
// Knows it’s a heading and its parents.
6464
visit(sampleTree, 'heading', function (node, index, parent) {
6565
expectType<Heading>(node)
66-
expectType<number | null>(index)
67-
expectType<Blockquote | FootnoteDefinition | ListItem | Root | null>(parent)
66+
expectType<number | undefined>(index)
67+
expectType<
68+
Blockquote | FootnoteDefinition | ListItem | Root | undefined
69+
>(parent)
6870
})
6971

7072
// Not in tree.
@@ -83,8 +85,8 @@ visit(implicitTree, 'heading', function (node, index, parent) {
8385

8486
visit(sampleTree, 'tableCell', function (node, index, parent) {
8587
expectType<TableCell>(node)
86-
expectType<number | null>(index)
87-
expectType<Root | TableRow | null>(parent)
88+
expectType<number | undefined>(index)
89+
expectType<Root | TableRow | undefined>(parent)
8890
})
8991

9092
// ## Props test
@@ -203,7 +205,7 @@ visit(sampleTree, 'tableCell', function (node) {
203205
| LinkReference
204206
| Strong
205207
| TableCell
206-
| null
208+
| undefined
207209
>(parent)
208210
})
209211
})

lib/index.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,9 @@
4343
* traversed.
4444
* @param {Visited} node
4545
* Found node.
46-
* @param {Visited extends UnistNode ? number | null : never} index
46+
* @param {Visited extends UnistNode ? number | undefined : never} index
4747
* Index of `node` in `parent`.
48-
* @param {Ancestor extends UnistNode ? Ancestor | null : never} parent
48+
* @param {Ancestor extends UnistNode ? Ancestor | undefined : never} parent
4949
* Parent of `node`.
5050
* @returns {VisitorResult}
5151
* What to do next.
@@ -187,7 +187,7 @@ export function visit(tree, testOrVisitor, visitorOrReverse, maybeReverse) {
187187
*/
188188
function overload(node, parents) {
189189
const parent = parents[parents.length - 1]
190-
const index = parent ? parent.children.indexOf(node) : null
190+
const index = parent ? parent.children.indexOf(node) : undefined
191191
return visitor(node, index, parent)
192192
}
193193
}

readme.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -162,9 +162,9 @@ traversed.
162162

163163
* `node` ([`Node`][node])
164164
— found node
165-
* `index` (`number` or `null`)
165+
* `index` (`number` or `undefined`)
166166
— index of `node` in `parent`
167-
* `parent` ([`Node`][node] or `null`)
167+
* `parent` ([`Node`][node] or `undefined`)
168168
— parent of `node`
169169

170170
###### Returns

test.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,7 @@ test('visit', async function (t) {
145145

146146
assert.equal(n, 3, 'should visit all passing nodes')
147147

148+
// To do: when `unist-util-is` updates, we can drop `null`.
148149
/**
149150
* @param {Node} _
150151
* @param {number | null | undefined} index

0 commit comments

Comments
 (0)