mdast-util-assert

mdast utility to assert trees

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
mdast-util-assert
005.0.010 months ago8 years agoMinified + gzip package size for mdast-util-assert in KB

Readme

mdast-util-assert
!Buildbuild-badgebuild !Coveragecoverage-badgecoverage !Downloadsdownloads-badgedownloads !Sizesize-badgesize !Sponsorssponsors-badgecollective !Backersbackers-badgecollective !Chatchat-badgechat
mdast 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-assertunist-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 mdast-util-assert

In Deno with esm.shesmsh:
import {assert} from 'https://esm.sh/mdast-util-assert@5'

In browsers with esm.shesmsh:
<script type="module">
  import {assert} from 'https://esm.sh/mdast-util-assert@5?bundle'
</script>

Use

import {assert} from 'mdast-util-assert'

assert({type: 'root', children: []})
assert({type: 'break'})
assert({type: 'listItem', checked: true, children: []})
// All OK.

assert({children: []})
// AssertionError: node should have a type: `{ children: [] }`

assert({type: 'paragraph', value: 'foo'})
// AssertionError: parent should have children: `{ type: 'paragraph', value: 'foo' }`

API

This package exports the identifiers _voidapi-void, assertapi-assert, literalapi-literal, parentapi-parent, and wrapapi-wrap. There is no default export.

assert(tree[, parent])

Assert that tree is a valid mdast Nodenode.
If tree is a parent, all children will be asserted too.
Supports unknown mdast nodes.
Parameters
  • tree (unknown)
— thing to assert
— optional, valid parent
Returns
Nothing.
Throws
When tree (or its descendants) is not an mdast node (AssertionErrorapi-assertion-error).

parent(tree[, parent])

Assert that tree is a valid mdast Parentparent.
All children will be asserted too.
Supports unknown mdast nodes.
Parameters
  • tree (unknown)
— thing to assert
— optional, valid parent
Returns
Nothing.
Throws
When tree is not a parent or its descendants are not nodes (AssertionErrorapi-assertion-error)

literal(node[, parent])

Assert that node is a valid mdast Literalliteral.
Supports unknown mdast nodes.
Parameters
  • node (unknown)
— thing to assert
— optional, valid parent
Returns
Nothing.
Throws
When node is not an mdast literal (AssertionErrorapi-assertion-error).

_void(node[, parent])

Re-exported from unist-util-assertunist-util-assert-void.

wrap(fn)

Re-exported from unist-util-assertunist-util-assert-wrap.

AssertionError

Re-exported from unist-util-assertunist-util-assert-assertionerror.

Types

This package is fully typed with TypeScript. It exports the additional type AssertionErrorapi-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, mdast-util-assert@^5, compatible with Node.js 16.

Security

Use of mdast-util-assert does not involve hast so there are no openings for cross-site scripting (XSS)xss attacks.

Related

— check unist nodes
— check hast nodes
— check nlcst nodes

Contribute

See contributing.mdcontributing in syntax-tree/.githubhealth for ways to get started. See support.mdsupport 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.

License

MITlicense © Titus Wormerauthor