Package Exports
- unist-util-is
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (unist-util-is) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
unist-util-is
unist utility to check if a node passes a test.
Install
This package is ESM only:
Node 12+ is needed to use it and it must be import
ed instead of require
d.
npm:
npm install unist-util-is
Use
import {is} from 'unist-util-is'
const node = {type: 'strong'}
const parent = {type: 'paragraph', children: [node]}
function test(node, n) {
return n === 5
}
is() // => false
is({children: []}) // => false
is(node) // => true
is(node, 'strong') // => true
is(node, 'emphasis') // => false
is(node, node) // => true
is(parent, {type: 'paragraph'}) // => true
is(parent, {type: 'strong'}) // => false
is(node, test) // => false
is(node, test, 4, parent) // => false
is(node, test, 5, parent) // => true
API
This package exports the following identifiers: is
, convert
.
There is no default export.
is(node[, test[, index, parent[, context]]])
Parameters
node
(Node
) — Node to check.test
(Function
,string
,Object
, orArray.<Test>
, optional) — When nullish, checks ifnode
is aNode
. Whenstring
, works like passingnode => node.type === test
. Whenarray
, checks if any one of the subtests pass. Whenobject
, checks that all keys intest
are innode
, and that they have strictly equal valuesindex
(number
, optional) — Index ofnode
inparent
parent
(Node
, optional) — Parent ofnode
context
(*
, optional) — Context object to invoketest
with
Returns
boolean
— Whether test
passed and node
is a Node
(object with
type
set to a non-empty string
).
function test(node[, index, parent])
Parameters
node
(Node
) — Node to checkindex
(number?
) — Index ofnode
inparent
parent
(Node?
) — Parent ofnode
Context
*
— The to is
given context
.
Returns
boolean?
— Whether node
matches.
convert(test)
Create a test function from test
, that can later be called with a node
,
index
, and parent
.
Useful if you’re going to test many nodes, for example when creating a utility
where something else passes an is-compatible test.
The created function is slightly faster because it expects valid input only. Therefore, passing invalid input, yields unexpected results.
For example:
import u from 'unist-builder'
import {convert} from 'unist-util-is'
var test = convert('leaf')
var tree = u('tree', [
u('node', [u('leaf', '1')]),
u('leaf', '2'),
u('node', [u('leaf', '3'), u('leaf', '4')]),
u('leaf', '5')
])
var leafs = tree.children.filter((child, index) => test(child, index, tree))
console.log(leafs)
Yields:
[{type: 'leaf', value: '2'}, {type: 'leaf', value: '5'}]
Related
unist-util-find-after
— Find a node after another nodeunist-util-find-before
— Find a node before another nodeunist-util-find-all-after
— Find all nodes after another nodeunist-util-find-all-before
— Find all nodes before another nodeunist-util-find-all-between
— Find all nodes between two nodesunist-util-filter
— Create a new tree with nodes that pass a checkunist-util-remove
— Remove nodes from tree
Contribute
See contributing.md
in syntax-tree/.github
for ways to get
started.
See support.md
for ways to get help.
This project has a code of conduct. By interacting with this repository, organization, or community you agree to abide by its terms.