Wizzi
A model driven artifact factory
- Design models that express your components features.
- Write model transformers and artifact generators that target your preferred technologies.
- Wizzify existing code.
- Apply templating and composition features to the wizzified code.
- Generate your artifacts from models.
Installation
Wizzi is available as an npm package.
npm install wizzi --save-dev
Usage (using the default factory for a quick start)
The default factory is an internally configured factory that uses a filesystem
store and has three pre-loaded plugins: wizzi-core
, wizzi-js
and wizzi-web
. It is a starter factory to play with that targets common web technologies.
mTree loading
Loads in memory an mTree defined by an ittf document.
var wizzi = require('wizzi');
wizzi.mtree(
sourcePath,
context,
options,
function(err, mTree) {
...
});
sourcePath | The path to the ittf document that describes the mTree. |
context | An object which properties will be context values in the mTree build of the ittf document. |
Wizzi model loading
Instantiates a wizzi model, loads it from an mTree object, validates and initializes it.
var wizzi = require('wizzi');
wizzi.model(
sourcePath,
context,
function(err, wizziModel) {
...
});
sourcePath | The path to the ittf document that describes the model. |
context | An object which properties will be context values in the mTree build of the ittf document. |
Artifact generation
Loads a wizzi model that describes an artifact and executes the generation.
var wizzi = require('wizzi');
wizzi.gen(
sourcePath,
context,
options,
function(err, artifactText) {
...
});
sourcePath | The path to the ittf document that describes the artifact. | ||||
context | An object which properties will be context values in the mTree build of the ittf document. | ||||
options |
|
Wizzi schema generation
Generates the artifacts that implement a new wizzi model. The model is described by a wizzi schema (a wfschema
ittf document).
var wizzi = require('wizzi');
wizzi.schema(
schemaPath,
context,
options,
function(err, generationResult) {
...
});
schemaPath | The path to the `wfschema` document that describes the new wizzi model. | ||
context | An object which properties will be context values in the mTree build up of the `wfschema` document. | ||
options |
|
Wizzi job execution
Executes the artifact generations described by a wfjob
model.
var wizzi = require('wizzi');
wizzi.job(
surcePath,
context,
options,
function(err, jobresults) {
...
});
surcePath | The path to the `wfjob` document that describes the artifact generations to be executed. | ||
context | An object which properties will be context values in the mTree build up of the `wfjob` document. | ||
options |
|
Folder generation
Executes the artifact generation of all the artifacts contained in a folder. Uses the default artifact generator of the ittf document schema.
var wizzi = require('wizzi');
wizzi.genFolder(
sourcePath,
context,
function(err, generationResults) {
...
});
surcePath | The path of the folder that contains the ittf documents that describe the artifacts. |
context | An object which properties will be context values in the mTree build up of each ittf document. |
Examples
Are you looking for an example to get started?
What is not * Wizzi is NOT REACTIVE, it is a SOURCE BUILDER * Wizzi DOES NOT IMPLEMNT technologies, it TARGETS technologies
Documentation
Check out our documentation website.
Roadmap
The future plans can be found in the ROADMAP.md file.
Contributing
We'd greatly appreciate any contribution you make.
Changelog
Recently Updated? Please read the CHANGELOG.md.