a command line utility that convert Plantuml -text file that represent class UML diagram to source code. puml parser based on plantuml-code-generator but is rewritten with es6.
$ npm i -g puml2code
- CoffeeScript (coffeescript)
- C# (csharp)
- ECMAScript5 (javascript)
- ECMAScript6 (javascript2.0) [default]
- Java (java)
- PHP (php)
- Ruby (ruby)
- TypeScript (typescript)
- output: file per class/console
- es6 extended with:
- code documentation
- imports based on parameter
- methods with parameters
- template engine: handlebars
- puml parser engine: pegjs
$ puml2code -h
Usage: puml2code [options]
Options:
-V, --version output the version number
-i, --input [file] input .puml file, or "stdin"
-l, --lang [lang] Optional output source code language (default: "ecmascript6")
-o, --out [path] Output path. When not given output is printed to console.
-h, --help output usage information
Supported languages: coffeescript, csharp, ecmascript5, ecmascript6, java, php, python, ruby, typescript
Examples:
$ puml2code -i input.puml -l ecmascript6
$ puml2code -h
Use DEBUG=puml2code env variable to get traces. Example:
$ DEBUG=puml2code puml2code -i input.puml
e.g.
$ puml2code -i myfile.puml
Scheduler.js:
// native modules
// 3rd party modules
// application modules
const Queue = require('./Queue');
const Resources = require('./Resources');
/**
* Class Scheduler
*/
class Scheduler {
/**
* TBD
*/
constructor(queue, resources) {
this._queue = query;
this._resoures = resources;
}
/**
* @param {Queue} queue TBD
*/
_test(queue) {
// TBD
}
/**
* @param {Queue} queue TBD
*/
__protected(queue) {
// TBD
}
}
See more output examples here