hast-util-assert
!Buildbuild-badgebuild
!Coveragecoverage-badgecoverage
!Downloadsdownloads-badgedownloads
!Sizesize-badgesize
!Sponsorssponsors-badgecollective
!Backersbackers-badgecollective
!Chatchat-badgechathast utility to assert trees.
Contents
* [`assert(tree[, parent])`](#asserttree-parent)
* [`parent(tree[, parent])`](#parenttree-parent)
* [`literal(node[, parent])`](#literalnode-parent)
* [`_void(node[, parent])`](#_voidnode-parent)
* [`wrap(fn)`](#wrapfn)
* [`AssertionError`](#assertionerror)
What is this?
This package is a tiny utility that helps you deal with nodes.When should I use this?
This utility is typically useful when you expect certain nodes in your APIs and want to make sure they’re valid and as expected.A different utility,
unist-util-assert
unist-util-assert, does the same but
for any unist node.Install
This package is ESM onlyesm. In Node.js (version 16+), install with npm:npm install hast-util-assert
In Deno with
esm.sh
esmsh:import {assert} from 'https://esm.sh/hast-util-assert@4'
In browsers with
esm.sh
esmsh:<script type="module">
import {assert} from 'https://esm.sh/hast-util-assert@4?bundle'
</script>
Use
import {assert} from 'hast-util-assert'
assert({type: 'root', children: []})
assert({type: 'element', tagName: 'a', properties: {}, children: []})
// All OK.
assert({children: []})
// AssertionError: node should have a type: `{ children: [] }`
assert({type: 'element', properties: {}, children: []})
// AssertionError: `element` should have a `tagName`: `{ type: 'element', properties: {}, children: [] }`
API
This package exports the identifiers_void
api-void,
assert
api-assert,
literal
api-literal,
parent
api-parent, and
wrap
api-wrap.
There is no default export.assert(tree[, parent])
Assert that tree
is a valid hast Node
node.If
tree
is a parent, all children will be asserted too.Supports unknown hast nodes.
Parameters
tree
(unknown
)
— thing to assert
parent
(Parent
parent-node, optional)
— optional, valid parent
Returns
Nothing.Throws
Whentree
(or its descendants) is not a hast node
(AssertionError
api-assertion-error).parent(tree[, parent])
Assert that tree
is a valid hast Parent
parent-node.All children will be asserted too.
Supports unknown hast nodes.
Parameters
tree
(unknown
)
— thing to assert
parent
(Parent
parent-node, optional)
— optional, valid parent
Returns
Nothing.Throws
Whentree
is not a parent or its descendants are not nodes
(AssertionError
api-assertion-error)literal(node[, parent])
Assert that node
is a valid hast Literal
literal-node.Supports unknown hast nodes.
Parameters
node
(unknown
)
— thing to assert
parent
(Parent
parent-node, optional)
— optional, valid parent
Returns
Nothing.Throws
Whennode
is not a hast literal (AssertionError
api-assertion-error)._void(node[, parent])
Re-exported from unist-util-assert
unist-util-assert-void.wrap(fn)
Re-exported from unist-util-assert
unist-util-assert-wrap.AssertionError
Re-exported from unist-util-assert
unist-util-assert-assertion-error.Types
This package is fully typed with TypeScript. It exports the additional typeAssertionError
api-assertion-error.Compatibility
Projects maintained by the unified collective are compatible with maintained versions of Node.js.When we cut a new major release, we drop support for unmaintained versions of Node. This means we try to keep the current release line,
hast-util-assert@^4
,
compatible with Node.js 16.Security
hast-util-assert
does not change the syntax tree so there are no openings for
cross-site scripting (XSS)xss attacks.Related
— check [unist](https://github.com/syntax-tree/unist) nodes
— check [mdast](https://github.com/syntax-tree/mdast) nodes
— check [nlcst](https://github.com/syntax-tree/nlcst) nodes
Contribute
Seecontributing.md
contributing in syntax-tree/.github
health for
ways to get started.
See support.md
support for ways to get help.This project has a code of conductcoc. By interacting with this repository, organization, or community you agree to abide by its terms.