Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

utility to assert nodes

License

NotificationsYou must be signed in to change notification settings

syntax-tree/unist-util-assert

BuildCoverageDownloadsSizeSponsorsBackersChat

unist utility to assert trees.

Contents

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 APIsand want to make sure they’re valid and as expected.

Different utilities,mdast-util-assert,hast-util-assert, andnlcst-test,do the same but for mdast, hast, and nlcst nodes, respectively.

Install

This package isESM only.In Node.js (version 16+), install withnpm:

npm install unist-util-assert

In Deno withesm.sh:

import{assert}from'https://esm.sh/unist-util-assert@4'

In browsers withesm.sh:

<scripttype="module">import{assert}from'https://esm.sh/unist-util-assert@4?bundle'</script>

Use

import{_void,assert,parent}from'unist-util-assert'assert({type:'root',children:[]})assert({type:'break'})assert({type:'element',properties:{},children:[]})// All OK.assert({children:[]})// AssertionError: node should have a type: `{ children: [] }`parent({type:'break'})// AssertionError: parent should have `children`: `{ type: 'break' }`assert({type:'element',properties:function(){}})// AssertionError: non-specced property `properties` should be JSON: `{ type: 'element', properties: [Function] }`_void({type:'text',value:'Alpha'})// AssertionError: void should not have `value`: `{ type: 'text', value: 'Alpha' }`assert({type:'paragraph',children:['foo']})// AssertionError: node should be an object: `'foo'` in `{ type: 'paragraph', children: [ 'foo' ] }`

API

This package exports the identifiers_void,assert,literal,parent, andwrap.There is no default export.

assert(tree[, parent])

Assert thattree is a valid unistNode.

Iftree is a parent, all children will be asserted too.

Parameters
  • tree (unknown)— thing to assert
  • parent (Parent, optional)— optional, valid parent
Returns

Nothing.

Throws

Whentree (or its descendants) is not a node.

parent(tree[, parent])

Assert thattree is a valid unistParent.

All children will be asserted too.

Parameters
  • tree (unknown)— thing to assert
  • parent (Parent, optional)— optional, valid parent
Returns

Nothing.

Throws

Whentree is not a parent or its descendants are not nodes.

literal(node[, parent])

Assert thatnode is a valid unistLiteral.

Parameters
  • tree (unknown)— thing to assert
  • parent (Parent, optional)— optional, valid parent
Returns

Nothing.

Throws

Whennode is not a literal.

_void(node[, parent])

Assert thatnode is a valid void node.

Parameters
  • tree (unknown)— thing to assert
  • parent (Parent, optional)— optional, valid parent
Returns

Nothing.

Throws

Whennode is not a node, a parent, or a literal.

wrap(fn)

Wrapper that adds the current node (and parent, if available) to errormessages.

Parameters
  • fn ((node?: any, parent?: Parent | null | undefined) => asserts node is Node))— custom assertion
Returns

Wrappedfn.

AssertionError

Assertion error fromnode:assert (TypeScript type).

Type
typeAssertionError=import('node:assert').AssertionError

Extensions

This module can be used as a base to test subsets of unist (for an example, seemdast-util-assert).All functions that are exposed from such a module, and functions used internallyto test children, should be wrapped inwrap, which adds an inspectable stringof the respective node, and its parent when available, to the exposed errormessage.

Types

This package is fully typed withTypeScript.It exports the additional typeAssertionError.

Compatibility

Projects maintained by the unified collective are compatible with maintainedversions of Node.js.

When we cut a new major release, we drop support for unmaintained versions ofNode.This means we try to keep the current release line,unist-util-assert@^4,compatible with Node.js 16.

Related

Contribute

Seecontributing.md insyntax-tree/.github forways to get started.Seesupport.md for ways to get help.

This project has acode of conduct.By interacting with this repository, organization, or community you agree toabide by its terms.

License

MIT ©Titus Wormer

About

utility to assert nodes

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Contributors2

  •  
  •  

[8]ページ先頭

©2009-2025 Movatter.jp