smartcli/ts/smartcli.classes.smartcli.ts

63 lines
1.7 KiB
TypeScript
Raw Normal View History

2016-06-10 00:27:04 +00:00
import "typings-global";
import * as plugins from "./smartcli.plugins"
import * as SmartcliInteractions from "./smartcli.interaction";
2016-06-10 00:27:04 +00:00
export class Smartcli {
argv;
questionsDone;
parseStarted;
commands;
questions;
version:string;
constructor(){
this.argv = plugins.argv;
this.questionsDone = plugins.q.defer();
this.parseStarted = plugins.q.defer();
}
addAlias(keyArg,aliasArg){
this.argv = this.argv.alias(keyArg,aliasArg);
};
addCommand(definitionArg:{commandName:string}){
let done = plugins.q.defer();
2016-06-10 02:13:23 +00:00
this.parseStarted.promise
.then(() => {
if (this.argv._.indexOf(definitionArg.commandName) == 0) {
2016-06-10 02:21:03 +00:00
done.resolve(this.argv);
} else {
return done.reject();
}
});
return done.promsise;
};
addQuestion(definitionArg:{questionString:string,questionType:string}){
};
addVersion(versionArg:string){
this.version = versionArg;
2016-06-10 02:13:23 +00:00
this.addAlias("v","version");
this.parseStarted.promise
.then(() => {
2016-06-10 02:13:23 +00:00
if(this.argv.v){
console.log(this.version);
}
})
}
standardTask(){
let done = plugins.q.defer();
2016-06-10 02:13:23 +00:00
this.parseStarted.promise
.then(() => {
2016-06-10 02:13:23 +00:00
if(this.argv._.length == 0 || !this.argv.v){
done.resolve();
} else {
done.reject();
};
});
return done.promise;
}
startParse(){
2016-06-10 02:13:23 +00:00
this.argv = this.argv.argv;
this.parseStarted.resolve();
}
2016-06-09 12:01:06 +00:00
}