Skip to content

Commit 865c8b8

Browse files
committed
Fix for changes in @types/unist
1 parent 0f1fc21 commit 865c8b8

File tree

3 files changed

+100
-24
lines changed

3 files changed

+100
-24
lines changed

index.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
/**
2-
* @typedef {import('unist').Node} Node
2+
* @typedef {import('hast').Root} Root
3+
* @typedef {Root['children'][number]|Root} Node
34
*/
45

56
import {hasProperty} from 'hast-util-has-property'

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
"index.js"
3434
],
3535
"dependencies": {
36-
"@types/unist": "^2.0.0",
36+
"@types/hast": "^2.0.0",
3737
"hast-util-has-property": "^2.0.0"
3838
},
3939
"devDependencies": {

test.js

Lines changed: 97 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ test('interactive', function (t) {
1313
)
1414

1515
t.equal(
16+
// @ts-expect-error: partial.
1617
interactive({type: 'element'}),
1718
false,
1819
'should return `false` without `tagName`'
@@ -21,62 +22,104 @@ test('interactive', function (t) {
2122
t.equal(
2223
interactive({
2324
type: 'element',
24-
properties: {tabIndex: -1}
25+
tagName: 'x',
26+
properties: {tabIndex: -1},
27+
children: []
2528
}),
2629
true,
2730
'should return `true` for elements with `tabIndex`'
2831
)
2932

3033
t.equal(
31-
interactive({type: 'element', tagName: 'button'}),
34+
interactive({
35+
type: 'element',
36+
tagName: 'button',
37+
properties: {},
38+
children: []
39+
}),
3240
true,
3341
'should return `true` for `button`'
3442
)
3543

3644
t.equal(
37-
interactive({type: 'element', tagName: 'details'}),
45+
interactive({
46+
type: 'element',
47+
tagName: 'details',
48+
properties: {},
49+
children: []
50+
}),
3851
true,
3952
'should return `true` for `details`'
4053
)
4154

4255
t.equal(
43-
interactive({type: 'element', tagName: 'embed'}),
56+
interactive({
57+
type: 'element',
58+
tagName: 'embed',
59+
properties: {},
60+
children: []
61+
}),
4462
true,
4563
'should return `true` for `embed`'
4664
)
4765

4866
t.equal(
49-
interactive({type: 'element', tagName: 'iframe'}),
67+
interactive({
68+
type: 'element',
69+
tagName: 'iframe',
70+
properties: {},
71+
children: []
72+
}),
5073
true,
5174
'should return `true` for `iframe`'
5275
)
5376

5477
t.equal(
55-
interactive({type: 'element', tagName: 'keygen'}),
78+
interactive({
79+
type: 'element',
80+
tagName: 'keygen',
81+
properties: {},
82+
children: []
83+
}),
5684
true,
5785
'should return `true` for `keygen`'
5886
)
5987

6088
t.equal(
61-
interactive({type: 'element', tagName: 'label'}),
89+
interactive({
90+
type: 'element',
91+
tagName: 'label',
92+
properties: {},
93+
children: []
94+
}),
6295
true,
6396
'should return `true` for `label`'
6497
)
6598

6699
t.equal(
67-
interactive({type: 'element', tagName: 'select'}),
100+
interactive({
101+
type: 'element',
102+
tagName: 'select',
103+
properties: {},
104+
children: []
105+
}),
68106
true,
69107
'should return `true` for `select`'
70108
)
71109

72110
t.equal(
73-
interactive({type: 'element', tagName: 'textarea'}),
111+
interactive({
112+
type: 'element',
113+
tagName: 'textarea',
114+
properties: {},
115+
children: []
116+
}),
74117
true,
75118
'should return `true` for `textarea`'
76119
)
77120

78121
t.equal(
79-
interactive({type: 'element', tagName: 'a'}),
122+
interactive({type: 'element', tagName: 'a', properties: {}, children: []}),
80123
false,
81124
'should return `false` for `a`'
82125
)
@@ -85,14 +128,20 @@ test('interactive', function (t) {
85128
interactive({
86129
type: 'element',
87130
tagName: 'a',
88-
properties: {href: '#alpha'}
131+
properties: {href: '#alpha'},
132+
children: []
89133
}),
90134
true,
91135
'should return `true` for `a` with `href`'
92136
)
93137

94138
t.equal(
95-
interactive({type: 'element', tagName: 'audio'}),
139+
interactive({
140+
type: 'element',
141+
tagName: 'audio',
142+
properties: {},
143+
children: []
144+
}),
96145
false,
97146
'should return `false` for `audio`'
98147
)
@@ -101,14 +150,20 @@ test('interactive', function (t) {
101150
interactive({
102151
type: 'element',
103152
tagName: 'audio',
104-
properties: {controls: true}
153+
properties: {controls: true},
154+
children: []
105155
}),
106156
true,
107157
'should return `true` for `audio` with `controls`'
108158
)
109159

110160
t.equal(
111-
interactive({type: 'element', tagName: 'video'}),
161+
interactive({
162+
type: 'element',
163+
tagName: 'video',
164+
properties: {},
165+
children: []
166+
}),
112167
false,
113168
'should return `false` for `video`'
114169
)
@@ -117,14 +172,20 @@ test('interactive', function (t) {
117172
interactive({
118173
type: 'element',
119174
tagName: 'video',
120-
properties: {controls: true}
175+
properties: {controls: true},
176+
children: []
121177
}),
122178
true,
123179
'should return `true` for `video` with `controls`'
124180
)
125181

126182
t.equal(
127-
interactive({type: 'element', tagName: 'img'}),
183+
interactive({
184+
type: 'element',
185+
tagName: 'img',
186+
properties: {},
187+
children: []
188+
}),
128189
false,
129190
'should return `false` for `img`'
130191
)
@@ -133,14 +194,20 @@ test('interactive', function (t) {
133194
interactive({
134195
type: 'element',
135196
tagName: 'img',
136-
properties: {useMap: '#bravo'}
197+
properties: {useMap: '#bravo'},
198+
children: []
137199
}),
138200
true,
139201
'should return `true` for `img` with `useMap`'
140202
)
141203

142204
t.equal(
143-
interactive({type: 'element', tagName: 'object'}),
205+
interactive({
206+
type: 'element',
207+
tagName: 'object',
208+
properties: {},
209+
children: []
210+
}),
144211
false,
145212
'should return `false` for `object`'
146213
)
@@ -149,14 +216,20 @@ test('interactive', function (t) {
149216
interactive({
150217
type: 'element',
151218
tagName: 'object',
152-
properties: {useMap: '#bravo'}
219+
properties: {useMap: '#bravo'},
220+
children: []
153221
}),
154222
true,
155223
'should return `true` for `object` with `useMap`'
156224
)
157225

158226
t.equal(
159-
interactive({type: 'element', tagName: 'input'}),
227+
interactive({
228+
type: 'element',
229+
tagName: 'input',
230+
properties: {},
231+
children: []
232+
}),
160233
true,
161234
'should return `true` for `input`'
162235
)
@@ -165,7 +238,8 @@ test('interactive', function (t) {
165238
interactive({
166239
type: 'element',
167240
tagName: 'input',
168-
properties: {type: 'hidden'}
241+
properties: {type: 'hidden'},
242+
children: []
169243
}),
170244
false,
171245
'should return `false` for `input` with `type` set to `hidden`'
@@ -175,7 +249,8 @@ test('interactive', function (t) {
175249
interactive({
176250
type: 'element',
177251
tagName: 'input',
178-
properties: {type: 'reset'}
252+
properties: {type: 'reset'},
253+
children: []
179254
}),
180255
true,
181256
'should return `true` for `input` with `type` set to `reset`'

0 commit comments

Comments
 (0)