hast-util-assert
hast utility to assert trees.
Contents
- What is this?
- When should I use this?
- Install
- Use
- API
- Types
- Compatibility
- Security
- Related
- Contribute
- License
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
, does the same but
for any unist node.
Install
This package is ESM only. In Node.js (version 14.14+ and 16.0+), install with npm:
npm install hast-util-assert
In Deno with esm.sh
:
import {assert} from 'https://esm.sh/hast-util-assert@3'
In browsers with esm.sh
:
<script type="module">
import {assert} from 'https://esm.sh/hast-util-assert@3?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
, assert
,
literal
, parent
, and wrap
.
There is no default export.
assert(tree[, parent])
Assert that tree
is a valid hast Node
.
If tree
is a parent, all children will be asserted too.
Supports unknown hast nodes.
Parameters
-
tree
(unknown
) — thing to assert -
parent
(Parent
, optional) — optional, valid parent
Returns
Nothing.
Throws
When tree
(or its descendants) is not a hast node
(AssertionError
).
parent(tree[, parent])
Assert that tree
is a valid hast Parent
.
All children will be asserted too.
Supports unknown hast nodes.
Parameters
-
tree
(unknown
) — thing to assert -
parent
(Parent
, optional) — optional, valid parent
Returns
Nothing.
Throws
When tree
is not a parent or its descendants are not nodes
(AssertionError
)
literal(node[, parent])
Assert that node
is a valid hast Literal
.
Supports unknown hast nodes.
Parameters
-
node
(unknown
) — thing to assert -
parent
(Parent
, optional) — optional, valid parent
Returns
Nothing.
Throws
When node
is not a hast literal (AssertionError
).
_void(node[, parent])
Re-exported from unist-util-assert
.
wrap(fn)
Re-exported from unist-util-assert
.
AssertionError
Re-exported from unist-util-assert
.
Types
This package is fully typed with TypeScript.
It exports the additional type AssertionError
.
Compatibility
Projects maintained by the unified collective are compatible with all maintained versions of Node.js. As of now, that is Node.js 14.14+ and 16.0+. Our projects sometimes work with older versions, but this is not guaranteed.
Security
hast-util-assert
does not change the syntax tree so there are no openings for
cross-site scripting (XSS) attacks.
Related
-
unist-util-assert
— check unist nodes -
mdast-util-assert
— check mdast nodes -
nlcst-test
— check nlcst nodes
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.