JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 23260504
  • Score
    100M100P100Q234507F
  • License MIT

Utility to check if a node passes a test

Package Exports

  • unist-util-is
  • unist-util-is/convert

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

Build Coverage Downloads Size Sponsors Backers Chat

unist utility to check if a node passes a test.

Install

npm:

npm install unist-util-is

Usage

var is = require('unist-util-is')

var node = {type: 'strong'}
var 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

is(node[, test[, index, parent[, context]]])

Parameters
  • node (Node) — Node to check.
  • test (Function, string, Object, or Array.<Test>, optional) — When not given, checks if node is a Node. When string, works like passing node => node.type === test. When array, checks if any one of the subtests pass. When object, checks that all keys in test are in node, and that they have strictly equal values
  • index (number, optional) — Index of node in parent
  • parent (Node, optional) — Parent of node
  • context (*, optional) — Context object to invoke test 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 check
  • index (number?) — Index of node in parent
  • parent (Node?) — Parent of node
Context

* — The to is given context.

Returns

boolean? — Whether node matches.

is.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.

Can also be accessed with require('unist-util-is/convert').

For example:

var u = require('unist-builder')
var convert = require('unist-util-is/convert')

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'})]

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, organisation, or community you agree to abide by its terms.

License

MIT © Titus Wormer