Socket
Socket
Sign inDemoInstall

unist-builder

Package Overview
Dependencies
1
Maintainers
2
Versions
12
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    unist-builder

unist utility to create a new trees with a nice syntax


Version published
Weekly downloads
3.4M
decreased by-2.39%
Maintainers
2
Install size
19.3 kB
Created
Weekly downloads
 

Package description

What is unist-builder?

The `unist-builder` npm package is a utility for creating trees of nodes, specifically designed for the Unified ecosystem. It simplifies the process of creating Unist (Universal Syntax Tree) nodes, which are used in processing complex structures like markdown, HTML, or other abstract syntax trees. This package is particularly useful for developers working with markdown, abstract syntax trees, or needing a structured way to programmatically generate or manipulate document structures.

What are unist-builder's main functionalities?

Creating simple Unist nodes

This feature allows for the creation of simple Unist nodes, such as paragraphs or text nodes, which can be used to represent parts of a document. The code sample demonstrates how to create a paragraph node containing a single text node.

{"type": "paragraph", "children": [{"type": "text", "value": "Hello, world!"}]}

Building complex tree structures

With `unist-builder`, users can build more complex tree structures by nesting nodes. This is useful for representing entire documents or sections of content. The provided code sample illustrates how to create a root node that contains a paragraph node, which in turn contains a text node.

{"type": "root", "children": [{"type": "paragraph", "children": [{"type": "text", "value": "Hello, world!"}]}]}

Manipulating node properties

This functionality enables the addition or modification of properties on nodes, such as adding URLs to link nodes. It's particularly useful for creating hyperlinks or adding metadata to nodes. The code sample shows how to create a link node with a URL property.

{"type": "link", "url": "https://example.com", "children": [{"type": "text", "value": "Example"}]}

Other packages similar to unist-builder

Readme

Source

unist-builder

Build Coverage Downloads Size Sponsors Backers Chat

unist utility to create trees with ease.

Contents

What is this?

This package is a hyperscript interface (like createElement from React and h from Vue and such) to help with creating unist trees.

When should I use this?

You can use this utility in your project when you generate syntax trees with code. It helps because it replaces most of the repetition otherwise needed in a syntax tree with function calls.

You can instead use hastscript or xastscript when creating hast (HTML) or xast (XML) nodes.

Install

This package is ESM only. In Node.js (version 16+), install with npm:

npm install unist-builder

In Deno with esm.sh:

import {u} from 'https://esm.sh/unist-builder@4'

In browsers with esm.sh:

<script type="module">
  import {u} from 'https://esm.sh/unist-builder@4?bundle'
</script>

Use

import {u} from 'unist-builder'

const tree = u('root', [
  u('subtree', {id: 1}),
  u('subtree', {id: 2}, [
    u('node', [u('leaf', 'leaf 1'), u('leaf', 'leaf 2')]),
    u('leaf', {id: 3}, 'leaf 3'),
    u('void', {id: 4})
  ])
])

console.dir(tree, {depth: undefined})

…yields:

{
  type: 'root',
  children: [
    {type: 'subtree', id: 1},
    {
      type: 'subtree',
      id: 2,
      children: [
        {
          type: 'node',
          children: [
            {type: 'leaf', value: 'leaf 1'},
            {type: 'leaf', value: 'leaf 2'}
          ]
        },
        {type: 'leaf', id: 3, value: 'leaf 3'},
        {type: 'void', id: 4}
      ]
    }
  ]
}

API

This package exports the identifier u. There is no default export.

u(type[, props][, children|value])

Build a node.

Signatures
  • u(type[, props], children) — create a parent (Parent)
  • u(type[, props], value) — create a literal (Literal)
  • u(type[, props]) — create a void node (neither parent not literal)
Parameters
  • type (string) — node type
  • props (Record<string, unknown>) — fields assigned to node
  • children (Array<Node>) — children of node
  • value (*) — value of node (cast to string)
Returns

Built node (Node).

ChildrenOrValue

List to use as children or value to use as value (TypeScript type).

Type
type ChildrenOrValue = Array<Node> | string

Props

Other fields to add to the node (TypeScript type).

Type
export type Props = Record<string, unknown>

Types

This package is fully typed with TypeScript. It exports the additional types ChildrenOrValue and Props.

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, unist-builder@^4, compatible with Node.js 16.

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.

License

MIT © Eugene Sharygin

Keywords

FAQs

Last updated on 07 Jul 2023

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc