Skip to content
This repository was archived by the owner on Aug 9, 2023. It is now read-only.

Commit 0c946dd

Browse files
committed
Externalise element detection
1 parent 7426654 commit 0c946dd

File tree

2 files changed

+9
-16
lines changed

2 files changed

+9
-16
lines changed

index.js

Lines changed: 6 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
'use strict';
22

3+
/* Dependencies. */
4+
var is = require('hast-util-is-element');
5+
36
/* Expose. */
47
module.exports = menuState;
58

@@ -8,7 +11,6 @@ function menuState(nodes) {
811
var index;
912
var node;
1013
var type;
11-
var name;
1214

1315
if (!nodes || typeof nodes !== 'object' || nodes.length === 0) {
1416
return null;
@@ -17,19 +19,17 @@ function menuState(nodes) {
1719
index = nodes.length - 1;
1820
node = nodes[index];
1921

20-
if (tagName(node) !== 'menu') {
22+
if (!is(node, 'menu')) {
2123
return null;
2224
}
2325

2426
while (node) {
25-
name = tagName(node);
26-
2727
/* Stop at `template` elements and non-elements. */
28-
if (!name || name === 'template') {
28+
if (!is(node) || is(node, 'template')) {
2929
break;
3030
}
3131

32-
if (name === 'menu') {
32+
if (is(node, 'menu')) {
3333
type = node.properties && node.properties.type;
3434

3535
if (type === 'context' || type === 'toolbar') {
@@ -42,12 +42,3 @@ function menuState(nodes) {
4242

4343
return 'toolbar';
4444
}
45-
46-
/* Get the `tagName` of an element. */
47-
function tagName(value) {
48-
if (value && typeof value === 'object' && value.type === 'element') {
49-
return value.tagName;
50-
}
51-
52-
return null;
53-
}

package.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,9 @@
2121
"files": [
2222
"index.js"
2323
],
24-
"dependencies": {},
24+
"dependencies": {
25+
"hast-util-is-element": "^1.0.0"
26+
},
2527
"devDependencies": {
2628
"browserify": "^13.0.0",
2729
"esmangle": "^1.0.1",

0 commit comments

Comments
 (0)