{
"name": "command-helper",
"version": "1.0.0",
"commands": {
...
},
"options": {
...
}
}
Main Template -> options[key]: Define command template in ${Main Template}.options{variable name}
Short Template: It used when the template file keeps as json.
{
"reader": "Boolean",
"defaultValue": false,
"description": "Renderer Description",
"usage": 0
}
{
"reader": {
"name": "Array<JsonFile>",
"main": Readers.Array,
"related": Readers.JsonFile
},
"defaultValue": [],
"remove": true,
"infinity": false,
"description": "Json Files Description",
"usage": -1
}
[...,"--command",....]
[...,"--command", "value",....]
or [...,"--command=value",....]
[...,"--command", "path",....]
or [...,"--command=path",....]
[...,"--command", "path",....]
or [...,"--command=path",....]
[...,"--command", "path1", "path2", "path3",....]
Array[...,"--command", "path1", "path2", "path3",....]
You can override standard readers when you call Helper file.
import { } "api/Api";
let customReaders = {
Boolean: (state: CommandState, opts) => {
if (!has(opts[state.name]) && state.args.length > state.i) {
let def = state.template.defaultValue;
opts[state.name] = has(def) ? !def : true;
return true;
}
return false;
},
NewType: (state: CommandState, opts) => {
if (!has(opts[state.name]) && state.args.length > state.i) {
let def = state.template.defaultValue;
opts[state.name] = has(def) ? !def : true;
return true;
}
return false;
}
}
let helper = new Helper(template, customerReaders)
let templateJson = {
"name": "command-helper",
"version": "1.0.0",
"commands": {
"--renderer": "renderer",
"--interactive": "interactive",
"--base-url": "baseUrl",
"--root-list": "rootList",
"--opts": "opts",
"--tdd-json": "tddJson",
"--files": "files",
"--another-files": "anotherFiles",
"--json-files": "jsonFiles"
},
"options": {
"renderer": {
"reader": "Boolean",
"defaultValue": false,
"description": "Renderer Description",
"usage": 0
},
"interactive": {
"reader": "Boolean",
"defaultValue": false,
"description": "Interactive Description",
"usage": 0
},
"baseUrl": {
"reader": "String",
"defaultValue": "",
"description": "Base Url Description",
"usage": 1
},
"rootList": {
"reader": "Array",
"defaultValue": [],
"description": "Root List Description",
"usage": -1
},
"opts": {
"reader": "TextFile",
"defaultValue": "",
"description": "Opts Description",
"usage": 1
},
"tddJson": {
"reader": "JsonFile",
"defaultValue": {},
"description": "Tdd Json Description",
"usage": 1
},
"files": {
"reader": "Array<TextFile>",
"defaultValue": [],
"description": "Files Description",
"usage": -1
},
"jsonFiles": {
"reader": "Array<JsonFile>",
"defaultValue": [],
"description": "Json Files Description",
"usage": -1
}
}
}
let helper = new Helper(template);
let result = helper.parse(process.argv);
$ git clone https://github.com/wasabi-io/command-helper.git`
$ cd command-helper
$ npm install
$ npm test
$ npm run coverage
$ npm run docs
$ npm build
Generated using TypeDoc