Wizzi Glossary
$fragment command
|
The $fragment command is an ITTF Template Command for declaring an inlined ITTF Fragment. |
$include command
|
The $include command is an ITTF Template Command for including an ITTF Fragment in the node position of the command. |
*__copy folders
|
When mass generating artifacts using a
glob
pattern, folders having a name ending with
__copy
are not generated but simply copied as is.
|
Artifact Generator
|
An Artifact Generator is a javascript module exported by a Wizzi Plugin that takes as input a Wizzi Model Instance and, optionally, a context object, and writes a software artifact. An Artifact Generation is the main actions of a Wizzi Production. |
Included ITTF Fragment
|
An Included ITTF Fragment is a reusable fragment of an ITTF Document, contained in its own file or inlined, that has been incuded in an includer, without passing of parameters, using an $include command. |
ITTF Document
|
ITTF, Indented Text Tree Format, is a document format for declaring a textual representation of a tree data structure of name-valued nodes. It is the source format of Wizzi Models. It consists of one Primary ITTF Document and, optionally, one or more ITTF Fragments mixed or included. |
ITTF Fragment path resolution
|
Include commands and mix actions declare the path of the ITTF Document that must be mixed or included. At first the path to match is built joining the current folder path of the includer document and the declared path of the included document. If this match fails, then the 't' folder rule is applied, starting from the current folder path and going up on the folder tree. See 't folder'. |
Primary ITTF Document
|
A Primary ITTF Document acts as the starting point for loading an mTree. It's a text file that can contain and combine smaller ITTF Fragments. However, the main root of the Primary ITTF Document might not become the final root node of the mTree after processing. This is because the Primary ITTF Document's root can be a Mix Action that inserts its content beneath another node within a mixed ITTF Fragment. |
ITTF Node
|
An ITTF Node is a node of the tree structure of an ITTF Document. It is a logical line of code that can be broken in many phisical lines with line continuations chars. It is a name value pair of text strings, with children ITTF Nodes, and one parent ITTF Node. The ITTF Root Node has no parent node. |
ITTF Node Name
|
An ITTF Node Name is the name part of an ITTF Node. |
ITTF Node Value
|
An ITTF Node Value is the value part of an ITTF Node. |
ITTF Fragment
|
An ITTF Fragment is a branch ITTF Node that can be included or mixed in an Primary ITTF Document or in another ITTF Fragment. It can be defined in a separate file, and retrieved using the ITTF Document path resolution or can be inlined, using the Template Command
$fragment fragment-name
, and referenced by name.
|
ITTF Processing
|
The ITTF Processing of an ITTF Document is the parsing of the source documents, the resolution of references to ITTF Fragments, their inclusion or mix, the execution of ITTF Template Commands and JsWizzi expressions, and, at the end, the build up of the resulting node structure that will be loaded into an mTree instance. |
ITTF Root Node
|
An ITTF Root Node is the root node of an ITTF Source Unit |
ITTF Scan Feature
|
The ITTF Scan Feature is a Wizzi Feature for keeping tracks and easily retrieve the dependencies of mixed and included ITTF Fragments. |
ITTF Source Unit
|
An ITTF Source Unit is an ITTF Node branch with a name, that can be referenced in a Wizzi Action. Primary ITTF Documents (files) and ITTF Fragments (files or inlined) are the ITTF Source Units of Wizzi. An ITTF Source Unit must have a single ITTF Root Node. You can define an ITTF Fragment with many root nodes using the convenience ITTF Template Command
$group
as ITTF Root Node.
|
ITTF Template Command
|
An ITTF Template Command is an instruction for the ITTF Template Engine. It is an ITTF Node with a name starting with the
$
char. It can modify variables in the JsWizzi Evaluation Context or manipulate the node structure of the ITTF Document, merging nodes with context data, including and excluding node branches, etc...
|
ITTF Template Engine
|
The ITTF Template Engine is a Wizzi Kernel Feature that manages the template commands and the JsWizzi expressions contained in an ITTF Document. |
JsWizzi
|
JsWizzi is the script engine used by the ITTF Template Engine of Wizzi. It is a sandboxed subset of javascript. Expressions in ITTF Node Values and ITTF Template Commands are written in JsWizzi. |
JsWizzi Evaluation Context
|
The JsWizzi Evaluation Context is the evaluation context of JsWizzi during an ITTF Processing. The properties can be set at various leveles. 1) a global context can be set instantiating a Wizzi Factory Istance; 2) an action context can be set calling the method for the action; 3) Ittf documents can declare global variables (the scope are the fragment of the document) using the
$global
command; 3) Ittf documents can declare local variables using the
$
command.
|
Language Artifact Generator
|
A Language Artifact Generator is an Artifact Generator that generate code files written in a Programming Language (PL). For example the
js/module
and
ts/module
Artifact Generators of the
js
and
ts
plugins.
|
Language Wizzi Schema
|
A Language Wizzi Schema is a Wizzi Schema that defines an ITTF Document Type that an artifact generator can transform in a Programming Language (PL) code file. |
Meta generation
|
See `Meta production` |
Meta production
|
A meta production is a data driven creation of a Wizzi Package. The entire folder and file structure of the package can be templated. The result of a meta generation are Ittf Documents. |
Mix Action
|
A Mix Action merges a Mixed ITTF Fragment into a mixer ITTF Document. |
Mixed ITTF Fragment
|
A Mixed ITTF Fragment is a reusable fragment of an ITTF Document, that has ben merged in a mixer document, with passing of parameters, using a Mix Action. The ITTF Nodes of a Mixed ITTF Fragment mantain the JsWizzi Evaluation Context of their original ITTF Source Unit. |
Model Transformer
|
A Model Trasformer is a javascript module exported by a Wizzi Plugin that takes as input a Wizzi Model Instance and, optionally, a context object, and gives as output a modified Wizzi Model Instance or a new POJO object. |
mTree
|
An mTree is the result of the mTree Loading of a ITTF Document. mTrees are tree data structures, in-memory objects that are not persisted. mTrees are verified and loaded into Wizzi Model Instances. A Wizzi Model Loader, optionally, can pre-process an mTree before loading it. |
mTree Loader
|
An mTree loader processes a primary ITTF document and all its associated fragments using ITTF Processing standards. Then, it loads the resulting data structure into an mTree. |
mTree Pre-processor
|
An mTree Pre-processor can modify an mTree after its loading and before its processing by a Wizzi Model Loader. It must be declared in a Wizzi Schema and must be written in the 'lib\wizzi\models' folder of a Wizzi Plugin. |
Semantic Ittf Node
|
A Semantic Ittf Node contains a name value pair that has a meaning in the document type (Wizzi Schema). An mTree contains Semantic Ittf Nodes only. See
Template Ittf Node
|
t folder
|
Folders named 't' have special rules for the path resolution of mixed and included ITTF Documents. In the folder structure of a Wizzi Package, ITTF Documents contained in a 't' folder, can be referenced with the same rules that apply to NodeJs packages in 'node_modules' folders. They are searched up on the folder tree, until the relative path of the mix or include call is matched or the path resolution fails. |
Template Ittf Node
|
A Template Ittf Node contains instructions for building the mTree Semantic Nodes structure. See
Semantic Ittf Node
|
Virtual Store System
|
The store system of Wizzi is virtualized. When instantiating a
WizziFactory
instance you can select the Store Kind. Disk file system is the default. Virtual Store Systems are implemented by the wizzi-repo
core package. Available store kinds are:
filesystem
,
mongodb
and
json
.
|
Wizzi Action
|
Wizzi Actions are the steps of a Wizzi Production. The main Wizzi Actions are:
ITTF Processing
,
mTree Loading
,
mTree pre-processing
,
Wizzi Model Loading
,
Model Transformation
,
Artifact Generation
. Wizzi Actions are orchestrated by
Wizzi Jobs
,
wizziHub Jobs
, or programmatically using the
Wizzi API
.
|
Wizzi API
|
It is an API for executing programmatically the productions of the Wizzi Factory. It is implemented by an instance of the
WizziFactory
class, exported by the wizzi
package.
|
Wizzi CLI
|
The Wizzi command line interface (CLI). It is used to perform basic functionality, such as executing a Wizzi Production, creating a new Wizzi Package based on a starter, wizzifying an existing artifact or a folder of artifacts. |
Wizzi Core Packages
|
The Wizzi Core Packages are the wizzi , wizzi-utils , wizzi-mtree , wizzi-repo packages. |
Wizzi Core Plugin
|
The Wizzi Core Plugins are the
wizzi-core
,
wizzi-js
,
wizzi-web
packages.
|
Wizzi Factory
|
It is the set of Wizzi features for producing artifacts. Wizzi is a software factory! |
Wizzi Factory Instance
|
A Wizzi Factory Instance is the main object of the Wizzi Platform. Declares the methods for executing almost every Wizzi Action. Most Wizzi Actions have a reference to the current Wizzi Factory Instance in their execution context so that they can require services. |
Wizzi Hub
|
Wizzi Hub is a NodeJS / Express / MongoDb / Typescript application running on the the cloud that can be used for
sharing your productions
with other developers and
calling generation services
over the network.
|
Wizzi Job
|
The Wizzi Job is the Task Manager of Wizzi. It is implemented as a Wizzi Kernel Schema of type
wzjob
where you can define Wizzi Productions. A Wizzi Job can be executed using the
wizzi
command of the Wizzi CLI or, programmatically, using the Wizzi API.
|
Wizzi Kernel Feature
|
A feature implemented by a Wizzi Core Package or a Wizzi Core Plugin. |
Wizzi Package Production
|
A Wizzi Package Production is a series of Wizzi Productions for creating a new Wizzi Package. It is executed by the Wizzi CLI after selecting a Wizzi Package Starter. |
Wizzi Model DOM
|
A Wizzi Model DOM is an object model implemented in a javascript module generate from a Wizzi Schema. The Wizzi Model DOM generation is a kernel feature of the \b\
wzschema
plugin and the class structure of the DOM is a Wizzi feature. Class methods instead can be user defined.
|
Wizzi Model Instance
|
A Wizzi Model Instance is an istance of a Wizzi Model DOM created by a Wizzi Model Loading. It is the main context object used by Wizzi Actions. |
Wizzi Model Loading
|
The Wizzi Model Loading is the action implemented by a Wizzi Model Factory and a Wizzi Model Doms generated from a Wizzi Schema. It creates a Wizzi Model Instance and loads in it an mTree, validates the mTree nodes, instantiates the classes of the DOM and executes the
verify
and
initialize
methods. The result is a Wizzi Model Instance ready for use as a context object in others Wizzi Actions.
|
Wizzi Package
|
A Wizzi Package is a package that uses Wizzi for generating some, or all, of its artifacts. A standard Wizzi Package contains a
.wizzi
folder.
|
Wizzi Platform
|
The Wizzi Platform is the entire ecosystem of Wizzi. Its main components are the
Wizzi Kernel
, the
Wizzi Plugins
, the
Wizzi Meta Plugins
, the
Wizzi CLI
, the
Wizzi API
,
Wizzi Studio
and
Wizzi Hub
.
|
Wizzi Plugin
|
A Wizzi Plugin implements one or more Wizzi Schemas. For each schema the plugin must implement its Wizzi Model Loader and can implement Artifact Generators, Model Transformers, a Wizzifier and a documentation Cheatsheet. A Wizzi plugin must be a NodeJS package, and must export a Wizzi Plugin Interface. |
Wizzi Plugin Interface
|
A Wizzi Plugin Interface is the interface that a Wizzi Pugin must export in its index file, so that the Wizzi Plugin Manager can retrieve its Loaders, transformers, generators, wizzifiers and cheatsheets. |
Wizzi Production
|
A Wizzi Production is a set of Wizzi Actions for generating one or more software artifacts. |
Wizzi Schema
|
A Wizzi Schemas is the core modeling tool of Wizzi. In it you define an object model of named and typed elements that map the ITTF Nodes of an ITTF Document. A production of the core plugin
wzschema
transforms a Wizzi Schema into a Wizzi Model DOM, a javascript class that implements the schema object model. Wizzi Model Instances can load and validate mTrees data. Typed elements become classes and you can write methods for filtering and manipulating the loaded data.
|
Wizzi Store System
|
A Wizzi Store System implements a Virtual File System for retrieving ITTF Documents. Currently the Wizzi Store Systems are:
filesystem
and
json
. The
json
Virtual file system is a powerful tool for executing productions in the cloud or behind your own http endpoints.
|
Wizzi Studio
|
Wizzi Studio is a NodeJS / Express / MongoDb / Typescript application for managing Wizzi Productions that must be run locally accessing the file system of your desktop. |
wizzifier
|
A plugin may implement a wizzifier for its schema. A wizzifier converts an artifact to its ITTF Document source. These core plugins have a wizzifier:
css
,
html
,
js
,
json
,
ts
,
svg
,
yaml
and
xml
.
|
wizzify
|
To wizzify means to executes a
wizzifier
. It converts an artifact to its ITTF Document source.
|