Skip to content

Commit 893d27c

Browse files
committed
Refactor to move implementation to lib/
1 parent 721ecdf commit 893d27c

File tree

3 files changed

+36
-34
lines changed

3 files changed

+36
-34
lines changed

index.js

Lines changed: 1 addition & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1 @@
1-
/**
2-
* @typedef {import('hast').Root} Root
3-
* @typedef {import('hast').Content} Content
4-
*/
5-
6-
/**
7-
* @typedef {Content | Root} Node
8-
*/
9-
10-
/**
11-
* Check whether a `node` is labelable:
12-
* See: <https://html.spec.whatwg.org/multipage/forms.html#category-label>.
13-
*
14-
* @param {Node} node
15-
* Node to check (typically `Element`).
16-
* @returns {boolean}
17-
* Whether `node` is a labelable element.
18-
*/
19-
export function labelable(node) {
20-
return Boolean(
21-
node &&
22-
typeof node === 'object' &&
23-
node.type === 'element' &&
24-
(node.tagName === 'button' ||
25-
node.tagName === 'keygen' ||
26-
node.tagName === 'meter' ||
27-
node.tagName === 'output' ||
28-
node.tagName === 'progress' ||
29-
node.tagName === 'select' ||
30-
node.tagName === 'textarea' ||
31-
(node.tagName === 'input' &&
32-
(node.properties && node.properties.type) !== 'hidden'))
33-
)
34-
}
1+
export {labelable} from './lib/index.js'

lib/index.js

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
/**
2+
* @typedef {import('hast').Root} Root
3+
* @typedef {import('hast').Content} Content
4+
*/
5+
6+
/**
7+
* @typedef {Content | Root} Node
8+
*/
9+
10+
/**
11+
* Check whether a `node` is labelable:
12+
* See: <https://html.spec.whatwg.org/multipage/forms.html#category-label>.
13+
*
14+
* @param {Node} node
15+
* Node to check (typically `Element`).
16+
* @returns {boolean}
17+
* Whether `node` is a labelable element.
18+
*/
19+
export function labelable(node) {
20+
return Boolean(
21+
node &&
22+
typeof node === 'object' &&
23+
node.type === 'element' &&
24+
(node.tagName === 'button' ||
25+
node.tagName === 'keygen' ||
26+
node.tagName === 'meter' ||
27+
node.tagName === 'output' ||
28+
node.tagName === 'progress' ||
29+
node.tagName === 'select' ||
30+
node.tagName === 'textarea' ||
31+
(node.tagName === 'input' &&
32+
(node.properties && node.properties.type) !== 'hidden'))
33+
)
34+
}

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
"main": "index.js",
2828
"types": "index.d.ts",
2929
"files": [
30+
"lib/",
3031
"index.d.ts",
3132
"index.js"
3233
],

0 commit comments

Comments
 (0)