0.1.3 • Published 5 months ago
@platecms/delta-castscript v0.1.3
castscript
This library is part of the CAST abstract syntax tree utilities. It provides a scriptable interface to help with creating cast trees.
Usage
Castscript provides an easy way to create cast trees using a scriptable interface.
Using the utility script to cast looks as follows:
import {c} from '@platecms/delta-castscript'
const tree = c('root', [
// only using the type argument
c('paragraph', [
// using the type and text arguments
c('text', 'Hello, world!')
]),
// using the type, properties and children arguments
c('heading', { level: 1 }, [
c('bold', [
c('text', 'Hello, world!')
])
]),
//using the type, text, properties and children arguments
c('paragraph', 'Hello,', { class: 'text' }, [
c('text', 'world!')
])
])yields:
{
"type": "root",
"children": [
{
"type": "paragraph",
"children": [
{ "type": "text", "value": "Hello, world!" }
]
},
{
"type": "heading",
"level": 1,
"children": [
{
"type": "bold",
"children": [
{ "type": "text", "value": "Hello, world!" }
]
}
]
},
{
"type": "paragraph",
"properties": { "class": "text" },
"children": [
{ "type": "text", "value": "Hello," },
{ "type": "text", "value": "world!" }
]
}
]
}You can use the following arguments to create complex cast trees:
Required arguments
type: The type of the node
Optional arguments, these can be used in different combinations
text: The text value of the node.properties: The properties of the node.children: The children of the node.
Signature and overloads:
import {Root, Content} from 'cast'
function c(type: string): Root | Content {
// function body
}
function c(type: string, text: string): Root | Content {
// function body
}
function c(type: string, properties: Record<string, any>): Root | Content {
// function body
}
function c(type: string, children: Node[]): Root | Content {
// function body
}
function c(type: string, text: string, properties: Record<string, any>): Root | Content {
// function body
}
function c(type: string, text: string, children: Node[]): Root | Content {
// function body
}
function c(type: string, properties: Record<string, any>, children: Node[]): Root | Content {
// function body
}
function c(type: string, text: string, properties: Record<string, any>, children: Node[]): Root | Content {
// function body
}Building
Run nx build castscript to build the library.
Running unit tests
Run nx test castscript to execute the unit tests via Vitest.