A Wizzi Core Plugin for javascript and typescript code-generation..


License
MIT
Install
npm install wizzi-js@0.5.2

Documentation

Wizzi

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
artifactName The name of the artifact to be generated. Defaults to the default artifact of the ittf document schema.
artifactContext An object which properties will be values of the artifact generation context.

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
outputPackagePath The path to the plugin package that will export the new wizzi model.

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
name The name of the job.

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?

We host some

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.