File tree Expand file tree Collapse file tree 5 files changed +43
-1
lines changed Expand file tree Collapse file tree 5 files changed +43
-1
lines changed Original file line number Diff line number Diff line change 1
1
.DS_Store
2
+ * .d.ts
2
3
* .log
3
4
coverage /
4
5
node_modules /
Original file line number Diff line number Diff line change
1
+ /**
2
+ * @typedef {import('unist').Node } Node
3
+ */
4
+
1
5
import { hasProperty } from 'hast-util-has-property'
2
6
3
7
// Always interactive nodes.
@@ -12,13 +16,19 @@ var alwaysInteractive = new Set([
12
16
'textarea'
13
17
] )
14
18
19
+ /**
20
+ * @param {Node } node
21
+ * @returns {boolean }
22
+ */
15
23
export function interactive ( node ) {
24
+ /** @type {string } */
16
25
var name
17
26
18
27
if ( ! node || typeof node !== 'object' || node . type !== 'element' ) {
19
28
return false
20
29
}
21
30
31
+ // @ts -ignore looks like an element.
22
32
name = node . tagName
23
33
24
34
return (
@@ -27,6 +37,7 @@ export function interactive(node) {
27
37
( name === 'video' && hasProperty ( node , 'controls' ) ) ||
28
38
( name === 'object' && hasProperty ( node , 'useMap' ) ) ||
29
39
( name === 'img' && hasProperty ( node , 'useMap' ) ) ||
40
+ // @ts -ignore looks like an element.
30
41
( name === 'input' && ( node . properties || { } ) . type !== 'hidden' ) ||
31
42
hasProperty ( node , 'tabIndex' ) ||
32
43
alwaysInteractive . has ( name )
Original file line number Diff line number Diff line change 27
27
"sideEffects" : false ,
28
28
"type" : " module" ,
29
29
"main" : " index.js" ,
30
+ "types" : " index.d.ts" ,
30
31
"files" : [
32
+ " index.d.ts" ,
31
33
" index.js"
32
34
],
33
35
"dependencies" : {
36
+ "@types/unist" : " ^2.0.0" ,
34
37
"hast-util-has-property" : " ^2.0.0"
35
38
},
36
39
"devDependencies" : {
40
+ "@types/tape" : " ^4.0.0" ,
37
41
"c8" : " ^7.0.0" ,
38
42
"prettier" : " ^2.0.0" ,
39
43
"remark-cli" : " ^9.0.0" ,
40
44
"remark-preset-wooorm" : " ^8.0.0" ,
45
+ "rimraf" : " ^3.0.0" ,
41
46
"tape" : " ^5.0.0" ,
47
+ "type-coverage" : " ^2.0.0" ,
48
+ "typescript" : " ^4.0.0" ,
42
49
"xo" : " ^0.39.0"
43
50
},
44
51
"scripts" : {
52
+ "prepack" : " npm run build && npm run format" ,
53
+ "build" : " rimraf \" *.d.ts\" && tsc && type-coverage" ,
45
54
"format" : " remark . -qfo && prettier . --write --loglevel warn && xo --fix" ,
46
55
"test-api" : " node test.js" ,
47
56
"test-coverage" : " c8 --check-coverage --branches 100 --functions 100 --lines 100 --statements 100 --reporter lcov node test.js" ,
48
- "test" : " npm run format && npm run test-coverage"
57
+ "test" : " npm run build && npm run format && npm run test-coverage"
49
58
},
50
59
"prettier" : {
51
60
"tabWidth" : 2 ,
66
75
"plugins" : [
67
76
" preset-wooorm"
68
77
]
78
+ },
79
+ "typeCoverage" : {
80
+ "atLeast" : 100 ,
81
+ "detail" : true ,
82
+ "strict" : true
69
83
}
70
84
}
Original file line number Diff line number Diff line change @@ -2,6 +2,7 @@ import test from 'tape'
2
2
import { interactive } from './index.js'
3
3
4
4
test ( 'interactive' , function ( t ) {
5
+ // @ts -ignore runtime.
5
6
t . equal ( interactive ( ) , false , 'should return `false` without node' )
6
7
t . equal ( interactive ( null ) , false , 'should return `false` with `null`' )
7
8
Original file line number Diff line number Diff line change
1
+ {
2
+ "include" : [" *.js" ],
3
+ "compilerOptions" : {
4
+ "target" : " ES2020" ,
5
+ "lib" : [" ES2020" ],
6
+ "module" : " ES2020" ,
7
+ "moduleResolution" : " node" ,
8
+ "allowJs" : true ,
9
+ "checkJs" : true ,
10
+ "declaration" : true ,
11
+ "emitDeclarationOnly" : true ,
12
+ "allowSyntheticDefaultImports" : true ,
13
+ "skipLibCheck" : true
14
+ }
15
+ }
You can’t perform that action at this time.
0 commit comments