diff --git a/.koding.yml b/.koding.yml
deleted file mode 100644
index e69de29..0000000
diff --git a/README.md b/README.md
index 3875272..f6c8b01 100644
--- a/README.md
+++ b/README.md
@@ -43,5 +43,8 @@ mySmartcli.standardTask()
// do something if program is called without an command
});
-mySmartcli.question
+mySmartcli.addCommand({commandname: 'install'})
+ .then(argvArg => {
+ // do something if program is called with command "install"
+ })
```
\ No newline at end of file
diff --git a/dist/index.d.ts b/dist/index.d.ts
index 43d2399..4781bb3 100644
--- a/dist/index.d.ts
+++ b/dist/index.d.ts
@@ -1,2 +1 @@
-import "typings-global";
-export { Smartcli } from "./smartcli.classes.smartcli";
+export { Smartcli } from './smartcli.classes.smartcli';
diff --git a/dist/index.js b/dist/index.js
index 8dc8ec3..6e87514 100644
--- a/dist/index.js
+++ b/dist/index.js
@@ -1,5 +1,4 @@
"use strict";
-require("typings-global");
var smartcli_classes_smartcli_1 = require("./smartcli.classes.smartcli");
exports.Smartcli = smartcli_classes_smartcli_1.Smartcli;
-//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsUUFBTyxnQkFBZ0IsQ0FBQyxDQUFBO0FBR3hCLDBDQUF1Qiw2QkFBNkIsQ0FBQztBQUE3Qyx3REFBNkMifQ==
\ No newline at end of file
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEseUVBQXNEO0FBQTdDLCtDQUFBLFFBQVEsQ0FBQSJ9
\ No newline at end of file
diff --git a/dist/smartcli.classes.interaction.d.ts b/dist/smartcli.classes.interaction.d.ts
index 0ff9203..1b4e633 100644
--- a/dist/smartcli.classes.interaction.d.ts
+++ b/dist/smartcli.classes.interaction.d.ts
@@ -1,13 +1,12 @@
-import "typings-global";
/**
* allows to specify an user interaction during runtime
*/
-export declare type questionType = "input" | "confirm" | "list" | "rawlist" | "expand" | "checkbox" | "password" | "editor";
-export interface choiceObject {
+export declare type questionType = 'input' | 'confirm' | 'list' | 'rawlist' | 'expand' | 'checkbox' | 'password' | 'editor';
+export interface IChoiceObject {
name: string;
value: any;
}
-export interface validateFunction {
+export interface IValidateFunction {
(any: any): boolean;
}
export declare class Interaction {
@@ -16,8 +15,8 @@ export declare class Interaction {
type: questionType;
message: string;
default: any;
- choices: string[] | choiceObject[];
- validate: validateFunction;
+ choices: string[] | IChoiceObject[];
+ validate: IValidateFunction;
}): void;
askQuestionArray: any;
}
diff --git a/dist/smartcli.classes.interaction.js b/dist/smartcli.classes.interaction.js
index 1ea2612..f28300b 100644
--- a/dist/smartcli.classes.interaction.js
+++ b/dist/smartcli.classes.interaction.js
@@ -1,10 +1,8 @@
"use strict";
-require("typings-global");
const plugins = require("./smartcli.plugins");
class Interaction {
constructor() {
}
- ;
askQuestion(optionsArg) {
let done = plugins.q.defer();
plugins.inquirer.prompt([{
@@ -17,25 +15,21 @@ class Interaction {
done.resolve(answers);
});
}
- ;
}
exports.Interaction = Interaction;
class QuestionTree {
constructor(questionString, optionsArray) {
}
- ;
}
exports.QuestionTree = QuestionTree;
-;
class QuestionTreeNode {
constructor() {
}
}
exports.QuestionTreeNode = QuestionTreeNode;
-;
class QuestionStorage {
constructor() {
}
}
exports.QuestionStorage = QuestionStorage;
-//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRjbGkuY2xhc3Nlcy5pbnRlcmFjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0Y2xpLmNsYXNzZXMuaW50ZXJhY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sZ0JBQWdCLENBQUMsQ0FBQTtBQUN4QixNQUFZLE9BQU8sV0FBTSxvQkFBb0IsQ0FBQyxDQUFBO0FBZTlDO0lBQ0k7SUFDQSxDQUFDOztJQUVELFdBQVcsQ0FBQyxVQU1YO1FBQ0csSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUM3QixPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUNyQixJQUFJLEVBQUUsVUFBVSxDQUFDLElBQUk7Z0JBQ3JCLE9BQU8sRUFBRSxVQUFVLENBQUMsT0FBTztnQkFDM0IsT0FBTyxFQUFFLFVBQVUsQ0FBQyxPQUFPO2dCQUMzQixPQUFPLEVBQUMsVUFBVSxDQUFDLE9BQU87Z0JBQzFCLFFBQVEsRUFBRSxVQUFVLENBQUMsUUFBUTthQUNoQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTztZQUNaLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDMUIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOztBQUVMLENBQUM7QUF2QlksbUJBQVcsY0F1QnZCLENBQUE7QUFHRDtJQUVJLFlBQVksY0FBc0IsRUFBRSxZQUFZO0lBRWhELENBQUM7O0FBQ0wsQ0FBQztBQUxZLG9CQUFZLGVBS3hCLENBQUE7QUFBQSxDQUFDO0FBRUY7SUFDSTtJQUVBLENBQUM7QUFDTCxDQUFDO0FBSlksd0JBQWdCLG1CQUk1QixDQUFBO0FBQUEsQ0FBQztBQUVGO0lBQ0k7SUFFQSxDQUFDO0FBQ0wsQ0FBQztBQUpZLHVCQUFlLGtCQUkzQixDQUFBIn0=
\ No newline at end of file
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRjbGkuY2xhc3Nlcy5pbnRlcmFjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0Y2xpLmNsYXNzZXMuaW50ZXJhY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLDhDQUE2QztBQWU3QztJQUNJO0lBQ0EsQ0FBQztJQUVELFdBQVcsQ0FBQyxVQU1YO1FBQ0csSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQTtRQUM1QixPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUNyQixJQUFJLEVBQUUsVUFBVSxDQUFDLElBQUk7Z0JBQ3JCLE9BQU8sRUFBRSxVQUFVLENBQUMsT0FBTztnQkFDM0IsT0FBTyxFQUFFLFVBQVUsQ0FBQyxPQUFPO2dCQUMzQixPQUFPLEVBQUUsVUFBVSxDQUFDLE9BQU87Z0JBQzNCLFFBQVEsRUFBRSxVQUFVLENBQUMsUUFBUTthQUNoQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTztZQUNaLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUE7UUFDekIsQ0FBQyxDQUFDLENBQUE7SUFDTixDQUFDO0NBRUo7QUF2QkQsa0NBdUJDO0FBR0Q7SUFFSSxZQUFZLGNBQXNCLEVBQUUsWUFBWTtJQUVoRCxDQUFDO0NBQ0o7QUFMRCxvQ0FLQztBQUVEO0lBQ0k7SUFFQSxDQUFDO0NBQ0o7QUFKRCw0Q0FJQztBQUVEO0lBQ0k7SUFFQSxDQUFDO0NBQ0o7QUFKRCwwQ0FJQyJ9
\ No newline at end of file
diff --git a/dist/smartcli.classes.smartcli.d.ts b/dist/smartcli.classes.smartcli.d.ts
index 68bacf3..ea11690 100644
--- a/dist/smartcli.classes.smartcli.d.ts
+++ b/dist/smartcli.classes.smartcli.d.ts
@@ -1,10 +1,9 @@
///
-import "typings-global";
-import * as plugins from "./smartcli.plugins";
-import { Objectmap } from "lik";
-export interface commandPromiseObject {
+import * as q from 'q';
+import { Objectmap } from 'lik';
+export interface ICommandPromiseObject {
commandName: string;
- promise: plugins.q.Promise;
+ promise: q.Promise;
}
export declare class Smartcli {
argv: any;
@@ -13,7 +12,7 @@ export declare class Smartcli {
commands: any;
questions: any;
version: string;
- allCommandPromises: Objectmap;
+ allCommandPromises: Objectmap;
constructor();
/**
* adds an alias, meaning one equals the other in terms of triggering associated commands
@@ -21,16 +20,15 @@ export declare class Smartcli {
addAlias(keyArg: any, aliasArg: any): void;
/**
* adds a Command by returning a Promise that reacts to the specific commandString given.
- *
* Note: in e.g. "npm install something" the "install" is considered the command.
*/
addCommand(definitionArg: {
commandName: string;
- }): plugins.q.Promise;
+ }): q.Promise;
/**
* gets a Promise for a command word
*/
- getCommandPromiseByName(commandNameArg: string): plugins.q.Promise;
+ getCommandPromiseByName(commandNameArg: string): q.Promise;
/**
* allows to specify help text to be printed above the rest of the help text
*/
@@ -44,7 +42,7 @@ export declare class Smartcli {
/**
* returns promise that is resolved when no commands are specified
*/
- standardTask(): plugins.q.Promise;
+ standardTask(): q.Promise;
/**
* start the process of evaluating commands
*/
diff --git a/dist/smartcli.classes.smartcli.js b/dist/smartcli.classes.smartcli.js
index 1f8ef52..01ab313 100644
--- a/dist/smartcli.classes.smartcli.js
+++ b/dist/smartcli.classes.smartcli.js
@@ -1,18 +1,16 @@
"use strict";
-require("typings-global");
+const q = require("q");
const plugins = require("./smartcli.plugins");
// import classes
const lik_1 = require("lik");
-;
class Smartcli {
constructor() {
// maps
this.allCommandPromises = new lik_1.Objectmap();
this.argv = plugins.yargs;
- this.questionsDone = plugins.q.defer();
- this.parseStarted = plugins.q.defer();
+ this.questionsDone = q.defer();
+ this.parseStarted = q.defer();
}
- ;
/**
* adds an alias, meaning one equals the other in terms of triggering associated commands
*/
@@ -20,17 +18,15 @@ class Smartcli {
this.argv = this.argv.alias(keyArg, aliasArg);
return;
}
- ;
/**
* adds a Command by returning a Promise that reacts to the specific commandString given.
- *
* Note: in e.g. "npm install something" the "install" is considered the command.
*/
addCommand(definitionArg) {
- let done = plugins.q.defer();
+ let done = q.defer();
this.parseStarted.promise
.then(() => {
- if (this.argv._.indexOf(definitionArg.commandName) == 0) {
+ if (this.argv._.indexOf(definitionArg.commandName) === 0) {
done.resolve(this.argv);
}
else {
@@ -39,7 +35,6 @@ class Smartcli {
});
return done.promise;
}
- ;
/**
* gets a Promise for a command word
*/
@@ -48,24 +43,22 @@ class Smartcli {
return commandPromiseObjectArg.commandName === commandNameArg;
}).promise;
}
- ;
/**
* allows to specify help text to be printed above the rest of the help text
*/
addHelp(optionsArg) {
this.addCommand({
- commandName: "help"
+ commandName: 'help'
}).then(argvArg => {
plugins.beautylog.log(optionsArg.helpText);
});
}
- ;
/**
* specify version to be printed for -v --version
*/
addVersion(versionArg) {
this.version = versionArg;
- this.addAlias("v", "version");
+ this.addAlias('v', 'version');
this.parseStarted.promise
.then(() => {
if (this.argv.v) {
@@ -73,21 +66,19 @@ class Smartcli {
}
});
}
- ;
/**
* returns promise that is resolved when no commands are specified
*/
standardTask() {
- let done = plugins.q.defer();
+ let done = q.defer();
this.parseStarted.promise
.then(() => {
- if (this.argv._.length == 0 && !this.argv.v) {
+ if (this.argv._.length === 0 && !this.argv.v) {
done.resolve(this.argv);
}
else {
done.reject(this.argv);
}
- ;
});
return done.promise;
}
@@ -101,4 +92,4 @@ class Smartcli {
}
}
exports.Smartcli = Smartcli;
-//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRjbGkuY2xhc3Nlcy5zbWFydGNsaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0Y2xpLmNsYXNzZXMuc21hcnRjbGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sZ0JBQWdCLENBQUMsQ0FBQTtBQUV4QixNQUFZLE9BQU8sV0FBTSxvQkFBb0IsQ0FBQyxDQUFBO0FBRzlDLGlCQUFpQjtBQUNqQixzQkFBd0IsS0FBSyxDQUFDLENBQUE7QUFNN0IsQ0FBQztBQUVGO0lBVUk7UUFGQSxPQUFPO1FBQ1AsdUJBQWtCLEdBQUcsSUFBSSxlQUFTLEVBQXdCLENBQUM7UUFFdkQsSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDO1FBQzFCLElBQUksQ0FBQyxhQUFhLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN2QyxJQUFJLENBQUMsWUFBWSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDMUMsQ0FBQzs7SUFFRDs7T0FFRztJQUNILFFBQVEsQ0FBQyxNQUFNLEVBQUMsUUFBUTtRQUNwQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBQyxRQUFRLENBQUMsQ0FBQztRQUM3QyxNQUFNLENBQUM7SUFDWCxDQUFDOztJQUVEOzs7O09BSUc7SUFDSCxVQUFVLENBQUMsYUFBa0M7UUFDekMsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQU8sQ0FBQztRQUNsQyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU87YUFDcEIsSUFBSSxDQUFDO1lBQ0YsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN0RCxJQUFJLENB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
\ No newline at end of file
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRjbGkuY2xhc3Nlcy5zbWFydGNsaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0Y2xpLmNsYXNzZXMuc21hcnRjbGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHVCQUFzQjtBQUV0Qiw4Q0FBNkM7QUFHN0MsaUJBQWlCO0FBQ2pCLDZCQUE2QjtBQVE3QjtJQVVJO1FBRkEsT0FBTztRQUNQLHVCQUFrQixHQUFHLElBQUksZUFBUyxFQUF5QixDQUFBO1FBRXZELElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQTtRQUN6QixJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQTtRQUM5QixJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQTtJQUNqQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxRQUFRLENBQUMsTUFBTSxFQUFDLFFBQVE7UUFDcEIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUMsUUFBUSxDQUFDLENBQUE7UUFDNUMsTUFBTSxDQUFBO0lBQ1YsQ0FBQztJQUVEOzs7T0FHRztJQUNILFVBQVUsQ0FBQyxhQUFvQztRQUMzQyxJQUFJLElBQUksR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFPLENBQUE7UUFDekIsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPO2FBQ3BCLElBQUksQ0FBQztZQUNGLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDdkQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7WUFDM0IsQ0FBQztZQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNKLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO1lBQzFCLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQTtRQUNOLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFBO0lBQ3ZCLENBQUM7SUFFRDs7T0FFRztJQUNILHVCQUF1QixDQUFDLGNBQXNCO1FBQzFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLHVCQUF1QjtZQUN2RCxNQUFNLENBQUMsdUJBQXVCLENBQUMsV0FBVyxLQUFLLGNBQWMsQ0FBQTtRQUNqRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUE7SUFDZCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxPQUFPLENBQUMsVUFFUDtRQUNHLElBQUksQ0FBQyxVQUFVLENBQUM7WUFDWixXQUFXLEVBQUUsTUFBTTtTQUN0QixDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU87WUFDWCxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUE7UUFDOUMsQ0FBQyxDQUFDLENBQUE7SUFDTixDQUFDO0lBRUQ7O09BRUc7SUFDSCxVQUFVLENBQUMsVUFBa0I7UUFDekIsSUFBSSxDQUFDLE9BQU8sR0FBRyxVQUFVLENBQUE7UUFDekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUMsU0FBUyxDQUFDLENBQUE7UUFDNUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPO2FBQ3BCLElBQUksQ0FBQztZQUNGLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDZCxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQTtZQUM3QixDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUE7SUFDVixDQUFDO0lBRUQ7O09BRUc7SUFDSCxZQUFZO1FBQ1IsSUFBSSxJQUFJLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBTyxDQUFBO1FBQ3pCLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTzthQUNwQixJQUFJLENBQUM7WUFDRixFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUMzQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtZQUMzQixDQUFDO1lBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ0osSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7WUFDMUIsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFBO1FBQ04sTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUE7SUFDdkIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsVUFBVTtRQUNOLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUE7UUFDMUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQTtRQUMzQixNQUFNLENBQUE7SUFDVixDQUFDO0NBRUo7QUF0R0QsNEJBc0dDIn0=
\ No newline at end of file
diff --git a/dist/smartcli.plugins.d.ts b/dist/smartcli.plugins.d.ts
index 402a949..38caa44 100644
--- a/dist/smartcli.plugins.d.ts
+++ b/dist/smartcli.plugins.d.ts
@@ -1,9 +1,8 @@
-import "typings-global";
-export import yargs = require('yargs');
-export import beautylog = require("beautylog");
-export import cliff = require("cliff");
-export import inquirer = require("inquirer");
-export import lik = require("lik");
-export import path = require("path");
-export import q = require("q");
-export import smartparam = require("smartparam");
+import 'typings-global';
+import * as yargs from 'yargs';
+import * as beautylog from 'beautylog';
+import * as inquirer from 'inquirer';
+import * as lik from 'lik';
+import * as path from 'path';
+import * as smartparam from 'smartparam';
+export { yargs, beautylog, cliff, inquirer, lik, path, smartparam };
diff --git a/dist/smartcli.plugins.js b/dist/smartcli.plugins.js
index 3225159..da615ac 100644
--- a/dist/smartcli.plugins.js
+++ b/dist/smartcli.plugins.js
@@ -1,11 +1,15 @@
"use strict";
require("typings-global");
-exports.yargs = require('yargs');
-exports.beautylog = require("beautylog");
-exports.cliff = require("cliff");
-exports.inquirer = require("inquirer");
-exports.lik = require("lik");
-exports.path = require("path");
-exports.q = require("q");
-exports.smartparam = require("smartparam");
-//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRjbGkucGx1Z2lucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0Y2xpLnBsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sZ0JBQWdCLENBQUMsQ0FBQTtBQUVWLGFBQUssV0FBVyxPQUFPLENBQUMsQ0FBQztBQUN6QixpQkFBUyxXQUFXLFdBQVcsQ0FBQyxDQUFDO0FBQ2pDLGFBQUssV0FBVyxPQUFPLENBQUMsQ0FBQztBQUN6QixnQkFBUSxXQUFXLFVBQVUsQ0FBQyxDQUFDO0FBQy9CLFdBQUcsV0FBVyxLQUFLLENBQUMsQ0FBQztBQUNyQixZQUFJLFdBQVcsTUFBTSxDQUFDLENBQUM7QUFDdkIsU0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDO0FBQ2pCLGtCQUFVLFdBQVcsWUFBWSxDQUFDLENBQUMifQ==
\ No newline at end of file
+const yargs = require("yargs");
+exports.yargs = yargs;
+const beautylog = require("beautylog");
+exports.beautylog = beautylog;
+const inquirer = require("inquirer");
+exports.inquirer = inquirer;
+const lik = require("lik");
+exports.lik = lik;
+const path = require("path");
+exports.path = path;
+const smartparam = require("smartparam");
+exports.smartparam = smartparam;
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRjbGkucGx1Z2lucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0Y2xpLnBsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLDBCQUF3QjtBQUV4QiwrQkFBOEI7QUFRMUIsZ0JBUlEsS0FBSyxDQVFSO0FBUFQsdUNBQXNDO0FBUWxDLG9CQVJRLFNBQVMsQ0FRUjtBQVBiLHFDQUFvQztBQVNoQyxtQkFUUSxRQUFRLENBU1I7QUFSWiwyQkFBMEI7QUFTdEIsY0FUUSxHQUFHLENBU1I7QUFSUCw2QkFBNEI7QUFTeEIsZUFUUSxJQUFJLENBU1I7QUFSUix5Q0FBd0M7QUFTcEMscUJBVFEsVUFBVSxDQVNSIn0=
\ No newline at end of file
diff --git a/package.json b/package.json
index 436d310..2d75f85 100644
--- a/package.json
+++ b/package.json
@@ -28,12 +28,10 @@
},
"homepage": "https://gitlab.com/pushrocks/smartcli",
"dependencies": {
- "@types/cliff": "^0.1.3",
"@types/inquirer": "0.x.x",
"@types/q": "0.x.x",
"@types/yargs": "0.x.x",
"beautylog": "^5.0.20",
- "cliff": "^0.1.10",
"inquirer": "^1.1.2",
"lik": "^1.0.15",
"q": "^1.4.1",
diff --git a/test/test.js b/test/test.js
index a16c936..4cef39a 100644
--- a/test/test.js
+++ b/test/test.js
@@ -33,4 +33,4 @@ describe("smartcli.Smartcli class", function () {
});
});
});
-//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sY0FBYyxDQUFDLENBQUE7QUFFdEIsTUFBTyxRQUFRLFdBQVcsZUFBZSxDQUFDLENBQUM7QUFDM0MsSUFBSSxTQUFTLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBQ3JDLElBQUksTUFBTSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUUvQixRQUFRLENBQUMseUJBQXlCLEVBQUM7SUFDL0IsSUFBSSxrQkFBb0MsQ0FBQztJQUN6QyxRQUFRLENBQUMsZ0JBQWdCLEVBQUM7UUFDdEIsRUFBRSxDQUFDLDhCQUE4QixFQUFDO1lBQzlCLGtCQUFrQixHQUFHLElBQUksUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzdDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMvRCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUMsQ0FBQyxDQUFDO0lBQ0gsUUFBUSxDQUFDLGFBQWEsRUFBQztRQUNuQixFQUFFLENBQUMsdUJBQXVCLEVBQUM7WUFDdkIsa0JBQWtCLENBQUMsVUFBVSxDQUFDO2dCQUMxQixXQUFXLEVBQUMsU0FBUzthQUN4QixDQUFDLENBQUM7UUFFUCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUMsQ0FBQyxDQUFDO0lBQ0gsUUFBUSxDQUFDLGVBQWUsRUFBQztRQUNyQixFQUFFLENBQUMscUNBQXFDLEVBQUMsVUFBUyxJQUFJO1lBQ2xELGtCQUFrQixDQUFDLFlBQVksRUFBRTtpQkFDNUIsSUFBSSxDQUFDO2dCQUNGLE9BQU8sQ0FBQyxHQUFHLENBQUMsNEJBQTRCLENBQUMsQ0FBQztZQUM5QyxDQUFDLENBQUMsQ0FBQztZQUNQLElBQUksRUFBRSxDQUFDO1FBQ1gsQ0FBQyxDQUFDLENBQUE7SUFDTixDQUFDLENBQUMsQ0FBQTtJQUNGLFFBQVEsQ0FBQyxhQUFhLEVBQUM7UUFDbkIsRUFBRSxDQUFDLG9DQUFvQyxFQUFDO1lBQ3BDLGtCQUFrQixDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3BDLENBQUMsQ0FBQyxDQUFBO0lBQ04sQ0FBQyxDQUFDLENBQUE7QUFDTixDQUFDLENBQUMsQ0FBQyJ9
\ No newline at end of file
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHdCQUFzQjtBQUV0QiwwQ0FBMkM7QUFDM0MsSUFBSSxTQUFTLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBQ3JDLElBQUksTUFBTSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUUvQixRQUFRLENBQUMseUJBQXlCLEVBQUM7SUFDL0IsSUFBSSxrQkFBb0MsQ0FBQztJQUN6QyxRQUFRLENBQUMsZ0JBQWdCLEVBQUM7UUFDdEIsRUFBRSxDQUFDLDhCQUE4QixFQUFDO1lBQzlCLGtCQUFrQixHQUFHLElBQUksUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzdDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMvRCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUMsQ0FBQyxDQUFDO0lBQ0gsUUFBUSxDQUFDLGFBQWEsRUFBQztRQUNuQixFQUFFLENBQUMsdUJBQXVCLEVBQUM7WUFDdkIsa0JBQWtCLENBQUMsVUFBVSxDQUFDO2dCQUMxQixXQUFXLEVBQUMsU0FBUzthQUN4QixDQUFDLENBQUM7UUFFUCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUMsQ0FBQyxDQUFDO0lBQ0gsUUFBUSxDQUFDLGVBQWUsRUFBQztRQUNyQixFQUFFLENBQUMscUNBQXFDLEVBQUMsVUFBUyxJQUFJO1lBQ2xELGtCQUFrQixDQUFDLFlBQVksRUFBRTtpQkFDNUIsSUFBSSxDQUFDO2dCQUNGLE9BQU8sQ0FBQyxHQUFHLENBQUMsNEJBQTRCLENBQUMsQ0FBQztZQUM5QyxDQUFDLENBQUMsQ0FBQztZQUNQLElBQUksRUFBRSxDQUFDO1FBQ1gsQ0FBQyxDQUFDLENBQUE7SUFDTixDQUFDLENBQUMsQ0FBQTtJQUNGLFFBQVEsQ0FBQyxhQUFhLEVBQUM7UUFDbkIsRUFBRSxDQUFDLG9DQUFvQyxFQUFDO1lBQ3BDLGtCQUFrQixDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3BDLENBQUMsQ0FBQyxDQUFBO0lBQ04sQ0FBQyxDQUFDLENBQUE7QUFDTixDQUFDLENBQUMsQ0FBQyJ9
\ No newline at end of file
diff --git a/ts/index.ts b/ts/index.ts
index 351c05f..9e1583e 100644
--- a/ts/index.ts
+++ b/ts/index.ts
@@ -1,4 +1 @@
-import "typings-global";
-
-import {Smartcli} from "./smartcli.classes.smartcli";
-export {Smartcli} from "./smartcli.classes.smartcli";
+export { Smartcli } from './smartcli.classes.smartcli'
diff --git a/ts/smartcli.classes.interaction.ts b/ts/smartcli.classes.interaction.ts
index 63aac46..7a56426 100644
--- a/ts/smartcli.classes.interaction.ts
+++ b/ts/smartcli.classes.interaction.ts
@@ -1,41 +1,40 @@
-import "typings-global";
-import * as plugins from "./smartcli.plugins";
+import * as plugins from './smartcli.plugins'
/**
* allows to specify an user interaction during runtime
*/
-export type questionType = "input" | "confirm" | "list" | "rawlist" | "expand" | "checkbox" | "password" | "editor"
-export interface choiceObject {
- name: string;
+export type questionType = 'input' | 'confirm' | 'list' | 'rawlist' | 'expand' | 'checkbox' | 'password' | 'editor'
+export interface IChoiceObject {
+ name: string
value: any
}
-export interface validateFunction {
- (any):boolean
+export interface IValidateFunction {
+ (any): boolean
}
export class Interaction {
constructor() {
- };
+ }
askQuestion(optionsArg: {
type: questionType,
message: string
default: any
- choices: string[] | choiceObject[];
- validate: validateFunction
+ choices: string[] | IChoiceObject[]
+ validate: IValidateFunction
}) {
- let done = plugins.q.defer();
+ let done = plugins.q.defer()
plugins.inquirer.prompt([{
type: optionsArg.type,
message: optionsArg.message,
default: optionsArg.default,
- choices:optionsArg.choices,
+ choices: optionsArg.choices,
validate: optionsArg.validate
}]).then(answers => {
- done.resolve(answers);
- });
- };
+ done.resolve(answers)
+ })
+ }
askQuestionArray
}
@@ -44,17 +43,17 @@ export class QuestionTree {
constructor(questionString: string, optionsArray) {
- };
-};
+ }
+}
export class QuestionTreeNode {
constructor() {
}
-};
+}
export class QuestionStorage {
constructor() {
}
-}
\ No newline at end of file
+}
diff --git a/ts/smartcli.classes.smartcli.ts b/ts/smartcli.classes.smartcli.ts
index d53af38..8ad8af6 100644
--- a/ts/smartcli.classes.smartcli.ts
+++ b/ts/smartcli.classes.smartcli.ts
@@ -1,118 +1,117 @@
-import "typings-global";
+import * as q from 'q'
-import * as plugins from "./smartcli.plugins";
-import * as interaction from "./smartcli.classes.interaction";
+import * as plugins from './smartcli.plugins'
+import * as interaction from './smartcli.classes.interaction'
// import classes
-import {Objectmap} from "lik";
+import {Objectmap} from 'lik'
// interfaces
-export interface commandPromiseObject {
- commandName:string;
- promise: plugins.q.Promise;
-};
+export interface ICommandPromiseObject {
+ commandName: string
+ promise: q.Promise
+}
export class Smartcli {
- argv:any;
- questionsDone;
- parseStarted;
- commands;
- questions;
- version:string;
+ argv: any
+ questionsDone
+ parseStarted
+ commands
+ questions
+ version: string
// maps
- allCommandPromises = new Objectmap();
- constructor(){
- this.argv = plugins.yargs;
- this.questionsDone = plugins.q.defer();
- this.parseStarted = plugins.q.defer();
- };
+ allCommandPromises = new Objectmap()
+ constructor() {
+ this.argv = plugins.yargs
+ this.questionsDone = q.defer()
+ this.parseStarted = q.defer()
+ }
/**
* adds an alias, meaning one equals the other in terms of triggering associated commands
*/
- addAlias(keyArg,aliasArg):void {
- this.argv = this.argv.alias(keyArg,aliasArg);
- return;
- };
+ addAlias(keyArg,aliasArg): void {
+ this.argv = this.argv.alias(keyArg,aliasArg)
+ return
+ }
/**
* adds a Command by returning a Promise that reacts to the specific commandString given.
- *
* Note: in e.g. "npm install something" the "install" is considered the command.
*/
- addCommand(definitionArg:{commandName:string}):plugins.q.Promise{
- let done = plugins.q.defer();
+ addCommand(definitionArg: {commandName: string}): q.Promise {
+ let done = q.defer()
this.parseStarted.promise
.then(() => {
- if (this.argv._.indexOf(definitionArg.commandName) == 0) {
- done.resolve(this.argv);
+ if (this.argv._.indexOf(definitionArg.commandName) === 0) {
+ done.resolve(this.argv)
} else {
- done.reject(this.argv);
+ done.reject(this.argv)
}
- });
- return done.promise;
- };
+ })
+ return done.promise
+ }
/**
* gets a Promise for a command word
*/
- getCommandPromiseByName(commandNameArg:string){
+ getCommandPromiseByName(commandNameArg: string) {
return this.allCommandPromises.find(commandPromiseObjectArg => {
- return commandPromiseObjectArg.commandName === commandNameArg;
- }).promise;
- };
+ return commandPromiseObjectArg.commandName === commandNameArg
+ }).promise
+ }
/**
* allows to specify help text to be printed above the rest of the help text
*/
- addHelp(optionsArg:{
- helpText:string
- }){
+ addHelp(optionsArg: {
+ helpText: string
+ }) {
this.addCommand({
- commandName:"help"
+ commandName: 'help'
}).then(argvArg => {
- plugins.beautylog.log(optionsArg.helpText);
+ plugins.beautylog.log(optionsArg.helpText)
})
- };
+ }
/**
* specify version to be printed for -v --version
*/
- addVersion(versionArg:string){
- this.version = versionArg;
- this.addAlias("v","version");
+ addVersion(versionArg: string) {
+ this.version = versionArg
+ this.addAlias('v','version')
this.parseStarted.promise
.then(() => {
- if(this.argv.v){
- console.log(this.version);
+ if (this.argv.v) {
+ console.log(this.version)
}
})
- };
+ }
/**
* returns promise that is resolved when no commands are specified
*/
- standardTask():plugins.q.Promise{
- let done = plugins.q.defer();
+ standardTask(): q.Promise {
+ let done = q.defer()
this.parseStarted.promise
.then(() => {
- if(this.argv._.length == 0 && !this.argv.v){
- done.resolve(this.argv);
+ if (this.argv._.length === 0 && !this.argv.v) {
+ done.resolve(this.argv)
} else {
- done.reject(this.argv);
- };
- });
- return done.promise;
+ done.reject(this.argv)
+ }
+ })
+ return done.promise
}
/**
* start the process of evaluating commands
*/
- startParse():void{
- this.argv = this.argv.argv;
- this.parseStarted.resolve();
- return;
+ startParse(): void {
+ this.argv = this.argv.argv
+ this.parseStarted.resolve()
+ return
}
-}
\ No newline at end of file
+}
diff --git a/ts/smartcli.plugins.ts b/ts/smartcli.plugins.ts
index 7264b84..3091fa0 100644
--- a/ts/smartcli.plugins.ts
+++ b/ts/smartcli.plugins.ts
@@ -1,10 +1,18 @@
-import "typings-global";
+import 'typings-global';
-export import yargs = require('yargs');
-export import beautylog = require("beautylog");
-export import cliff = require("cliff");
-export import inquirer = require("inquirer");
-export import lik = require("lik");
-export import path = require("path");
-export import q = require("q");
-export import smartparam = require("smartparam");
\ No newline at end of file
+import * as yargs from 'yargs'
+import * as beautylog from 'beautylog'
+import * as inquirer from 'inquirer'
+import * as lik from 'lik'
+import * as path from 'path'
+import * as smartparam from 'smartparam'
+
+export {
+ yargs,
+ beautylog,
+ cliff,
+ inquirer,
+ lik,
+ path,
+ smartparam
+}
diff --git a/tslint.json b/tslint.json
new file mode 100644
index 0000000..45052ad
--- /dev/null
+++ b/tslint.json
@@ -0,0 +1,3 @@
+{
+ "extends": "tslint-config-standard"
+}