Terminal TAST
TAST is a tree JSON-based language that allows to translate server responses into terminal output.
Note: Writing complex Terminal screen output using a JSON format can be a tedious task. For this reason, we created JSX TAST as an alternative way to build terminal screen output in a more "React" way by using JSX.
We highly encourage using JSX TAST to build terminal screen output.

The following scripts generate a "Hello/Hola david." terminal output. The "david" text has a red background.
tast.json
Copy
[
"> ",
{ "type": "Bind", "property": "wave" },
" ",
{
"type": "Inline",
"inlineType": "highlighted",
"children": [{ "type": "Bind", "property": "name" }]
},
"."
]
vm.json
Copy
{
"name": "david"
}
propertyBinders.js
Copy
export default {
'$.wave': () => (Math.random() < 0.5 ? 'Hello' : 'Hola'),
};
inlineTypes.json
Copy
{
"highlighted": {
"style": {
"background": "red"
}
}
}
package.json
Copy
{
"name": "example",
"version": "1.0.0",
"orion": {
"dispatchersHelper": {
"actionCreators": {
"consumes": {
"@orion/terminals": [
"createTerminal",
"spliceTerminalTAST",
"setTerminalsInlineTypes"
]
}
}
}
}
}
Sections
Sections |
Description |
---|---|
Basic | Firsts steps using TAST |
PAD | PAD object and how it works |
Inline | Inline object and its actions |
Styles | Styling TAST objects |
Actions | How to dispatch actions in a TAST object |
Inline Types | Available types for inline objects |
Scopes and Refs | Group and reference TAST objects |
Visibility | How to manage the visibility of TAST |
Binding Data | How to bind data to TAST |
Binding Objects | How to bind bind a data object to TAST |
Property Binders | Properties to bind parts of an object |
JSX TAST |
How to create a TAST object in a React |
Cheat Sheets | Shortcuts to valuable info |