remove bulk and add some features to Smartcli class
This commit is contained in:
parent
9e76f2afb1
commit
e1c2de8a40
15
dist/smartcli.checks.d.ts
vendored
15
dist/smartcli.checks.d.ts
vendored
@ -1,15 +0,0 @@
|
||||
import "typings-global";
|
||||
import "./smartcli.interfaces";
|
||||
/**
|
||||
* checks for an special command argument at a certain position, returns true if matches, returns false if not
|
||||
* @param level
|
||||
* @returns {boolean}
|
||||
*/
|
||||
export declare let commandArgument: (commandArgumentString: string, level?: number) => boolean;
|
||||
export declare let commandArgumentPresence: (level?: number) => boolean;
|
||||
/**
|
||||
* checks for a specific option string, returns true if yes, returns false if no
|
||||
* @returns {boolean}
|
||||
*/
|
||||
export declare let option: (optionString: any) => boolean;
|
||||
export declare let optionPresence: () => boolean;
|
41
dist/smartcli.checks.js
vendored
41
dist/smartcli.checks.js
vendored
@ -1,41 +0,0 @@
|
||||
"use strict";
|
||||
require("typings-global");
|
||||
require("./smartcli.interfaces");
|
||||
var plugins = require("./smartcli.plugins");
|
||||
/**
|
||||
* checks for an special command argument at a certain position, returns true if matches, returns false if not
|
||||
* @param level
|
||||
* @returns {boolean}
|
||||
*/
|
||||
exports.commandArgument = function (commandArgumentString, level) {
|
||||
if (level === void 0) { level = 1; }
|
||||
if (exports.commandArgumentPresence(level) && (plugins.argv._[level] == commandArgumentString)) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
};
|
||||
exports.commandArgumentPresence = function (level) {
|
||||
if (level === void 0) { level = 1; }
|
||||
if (plugins.argv._.length >= (level + 1)) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
};
|
||||
/**
|
||||
* checks for a specific option string, returns true if yes, returns false if no
|
||||
* @returns {boolean}
|
||||
*/
|
||||
exports.option = function (optionString) {
|
||||
if (plugins.smartparam.exists(plugins.argv, optionString)) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
};
|
||||
exports.optionPresence = function () {
|
||||
if (plugins.argv.indexOf() != -1) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
};
|
||||
|
||||
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNtYXJ0Y2xpLmNoZWNrcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsUUFBTyxnQkFBZ0IsQ0FBQyxDQUFBO0FBRXhCLFFBQU8sdUJBQXVCLENBQUMsQ0FBQTtBQUMvQixJQUFPLE9BQU8sV0FBVyxvQkFBb0IsQ0FBQyxDQUFDO0FBRy9DOzs7O0dBSUc7QUFDUSx1QkFBZSxHQUFHLFVBQVMscUJBQTRCLEVBQUMsS0FBZ0I7SUFBaEIscUJBQWdCLEdBQWhCLFNBQWdCO0lBQy9FLEVBQUUsQ0FBQSxDQUFDLCtCQUF1QixDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUkscUJBQXFCLENBQUUsQ0FBQyxDQUFDLENBQUM7UUFDckYsTUFBTSxDQUFDLElBQUksQ0FBQztJQUNoQixDQUFDO0lBQ0QsTUFBTSxDQUFDLEtBQUssQ0FBQztBQUNqQixDQUFDLENBQUM7QUFFUywrQkFBdUIsR0FBRyxVQUFTLEtBQWdCO0lBQWhCLHFCQUFnQixHQUFoQixTQUFnQjtJQUMxRCxFQUFFLENBQUEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RDLE1BQU0sQ0FBQyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUNELE1BQU0sQ0FBQyxLQUFLLENBQUM7QUFDakIsQ0FBQyxDQUFDO0FBRUY7OztHQUdHO0FBQ1EsY0FBTSxHQUFHLFVBQVMsWUFBWTtJQUNyQyxFQUFFLENBQUEsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN2RCxNQUFNLENBQUMsSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFDRCxNQUFNLENBQUMsS0FBSyxDQUFDO0FBQ2pCLENBQUMsQ0FBQztBQUVTLHNCQUFjLEdBQUc7SUFDeEIsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDL0IsTUFBTSxDQUFDLElBQUksQ0FBQTtJQUNmLENBQUM7SUFDRCxNQUFNLENBQUMsS0FBSyxDQUFDO0FBQ2pCLENBQUMsQ0FBQyIsImZpbGUiOiJzbWFydGNsaS5jaGVja3MuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXCJ0eXBpbmdzLWdsb2JhbFwiO1xuXG5pbXBvcnQgXCIuL3NtYXJ0Y2xpLmludGVyZmFjZXNcIjtcbmltcG9ydCBwbHVnaW5zID0gcmVxdWlyZShcIi4vc21hcnRjbGkucGx1Z2luc1wiKTtcblxuXG4vKipcbiAqIGNoZWNrcyBmb3IgYW4gc3BlY2lhbCBjb21tYW5kIGFyZ3VtZW50IGF0IGEgY2VydGFpbiBwb3NpdGlvbiwgcmV0dXJucyB0cnVlIGlmIG1hdGNoZXMsIHJldHVybnMgZmFsc2UgaWYgbm90XG4gKiBAcGFyYW0gbGV2ZWxcbiAqIEByZXR1cm5zIHtib29sZWFufVxuICovXG5leHBvcnQgbGV0IGNvbW1hbmRBcmd1bWVudCA9IGZ1bmN0aW9uKGNvbW1hbmRBcmd1bWVudFN0cmluZzpzdHJpbmcsbGV2ZWw6bnVtYmVyID0gMSk6Ym9vbGVhbiB7XG4gICAgaWYoY29tbWFuZEFyZ3VtZW50UHJlc2VuY2UobGV2ZWwpICYmIChwbHVnaW5zLmFyZ3YuX1tsZXZlbF0gPT0gY29tbWFuZEFyZ3VtZW50U3RyaW5nICkpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbn07XG5cbmV4cG9ydCBsZXQgY29tbWFuZEFyZ3VtZW50UHJlc2VuY2UgPSBmdW5jdGlvbihsZXZlbDpudW1iZXIgPSAxKSB7XG4gICAgaWYocGx1Z2lucy5hcmd2Ll8ubGVuZ3RoID49IChsZXZlbCArIDEpKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG59O1xuXG4vKipcbiAqIGNoZWNrcyBmb3IgYSBzcGVjaWZpYyBvcHRpb24gc3RyaW5nLCByZXR1cm5zIHRydWUgaWYgeWVzLCByZXR1cm5zIGZhbHNlIGlmIG5vXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqL1xuZXhwb3J0IGxldCBvcHRpb24gPSBmdW5jdGlvbihvcHRpb25TdHJpbmcpOmJvb2xlYW4ge1xuICAgIGlmKHBsdWdpbnMuc21hcnRwYXJhbS5leGlzdHMocGx1Z2lucy5hcmd2LCBvcHRpb25TdHJpbmcpKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG59O1xuXG5leHBvcnQgbGV0IG9wdGlvblByZXNlbmNlID0gZnVuY3Rpb24oKTpib29sZWFuIHtcbiAgICBpZiAocGx1Z2lucy5hcmd2LmluZGV4T2YoKSAhPSAtMSkge1xuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG59OyJdfQ==
|
8
dist/smartcli.classes.smartcli.d.ts
vendored
8
dist/smartcli.classes.smartcli.d.ts
vendored
@ -1,10 +1,13 @@
|
||||
import "typings-global";
|
||||
import * as interfaces from "./smartcli.interfaces";
|
||||
export declare class Smartcli {
|
||||
argv: any;
|
||||
questionsDone: any;
|
||||
commands: interfaces.CliCommand[];
|
||||
parseStarted: any;
|
||||
commands: any;
|
||||
questions: any;
|
||||
version: string;
|
||||
constructor();
|
||||
addAlias(keyArg: any, aliasArg: any): void;
|
||||
addCommand(definitionArg: {
|
||||
commandName: string;
|
||||
}): any;
|
||||
@ -13,5 +16,6 @@ export declare class Smartcli {
|
||||
questionType: string;
|
||||
}): void;
|
||||
addVersion(versionArg: string): void;
|
||||
standardTask(): any;
|
||||
startParse(): void;
|
||||
}
|
||||
|
34
dist/smartcli.classes.smartcli.js
vendored
34
dist/smartcli.classes.smartcli.js
vendored
@ -3,16 +3,26 @@ require("typings-global");
|
||||
var plugins = require("./smartcli.plugins");
|
||||
var Smartcli = (function () {
|
||||
function Smartcli() {
|
||||
this.argv = plugins.argv;
|
||||
this.questionsDone = plugins.q.defer();
|
||||
this.parseStarted = plugins.q.defer();
|
||||
}
|
||||
Smartcli.prototype.addAlias = function (keyArg, aliasArg) {
|
||||
this.argv = this.argv.alias(keyArg, aliasArg);
|
||||
};
|
||||
;
|
||||
Smartcli.prototype.addCommand = function (definitionArg) {
|
||||
var _this = this;
|
||||
var done = plugins.q.defer();
|
||||
if (plugins.argv._.indexOf(definitionArg.commandName) == 0) {
|
||||
this.parseStarted
|
||||
.then(function () {
|
||||
if (_this.argv._.indexOf(definitionArg.commandName) == 0) {
|
||||
done.resolve();
|
||||
}
|
||||
else {
|
||||
return done.reject();
|
||||
}
|
||||
});
|
||||
return done.promsise;
|
||||
};
|
||||
;
|
||||
@ -20,11 +30,31 @@ var Smartcli = (function () {
|
||||
};
|
||||
;
|
||||
Smartcli.prototype.addVersion = function (versionArg) {
|
||||
this.version = versionArg;
|
||||
this.parseStarted
|
||||
.then(function () {
|
||||
});
|
||||
};
|
||||
Smartcli.prototype.standardTask = function () {
|
||||
var _this = this;
|
||||
var done = plugins.q.defer();
|
||||
this.parseStarted
|
||||
.then(function () {
|
||||
if (plugins.argv._.length == 0 || _this.commands.length == 0) {
|
||||
done.resolve();
|
||||
}
|
||||
else {
|
||||
done.reject();
|
||||
}
|
||||
;
|
||||
});
|
||||
return done.promise;
|
||||
};
|
||||
Smartcli.prototype.startParse = function () {
|
||||
this.parseStarted.resolve();
|
||||
};
|
||||
return Smartcli;
|
||||
}());
|
||||
exports.Smartcli = Smartcli;
|
||||
|
||||
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNtYXJ0Y2xpLmNsYXNzZXMuc21hcnRjbGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sZ0JBQWdCLENBQUMsQ0FBQTtBQUd4QixJQUFZLE9BQU8sV0FBTSxvQkFDekIsQ0FBQyxDQUQ0QztBQUs3QztJQUlJO1FBQ0ksSUFBSSxDQUFDLGFBQWEsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzNDLENBQUM7SUFDRCw2QkFBVSxHQUFWLFVBQVcsYUFBa0M7UUFDekMsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUM3QixFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDekQsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ25CLENBQUM7UUFBQyxJQUFJLENBQUMsQ0FBQztZQUNKLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDekIsQ0FBQztRQUNELE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3pCLENBQUM7O0lBQ0QsOEJBQVcsR0FBWCxVQUFZLGFBQXlEO0lBRXJFLENBQUM7O0lBQ0QsNkJBQVUsR0FBVixVQUFXLFVBQWlCO0lBRTVCLENBQUM7SUFDRCw2QkFBVSxHQUFWO0lBRUEsQ0FBQztJQUVMLGVBQUM7QUFBRCxDQTFCQSxBQTBCQyxJQUFBO0FBMUJZLGdCQUFRLFdBMEJwQixDQUFBIiwiZmlsZSI6InNtYXJ0Y2xpLmNsYXNzZXMuc21hcnRjbGkuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXCJ0eXBpbmdzLWdsb2JhbFwiO1xuXG5pbXBvcnQgKiBhcyBpbnRlcmZhY2VzIGZyb20gXCIuL3NtYXJ0Y2xpLmludGVyZmFjZXNcIlxuaW1wb3J0ICogYXMgcGx1Z2lucyBmcm9tIFwiLi9zbWFydGNsaS5wbHVnaW5zXCJcbmltcG9ydCAqIGFzIFNtYXJ0Y2xpQ2hlY2tzIGZyb20gXCIuL3NtYXJ0Y2xpLmNoZWNrc1wiO1xuaW1wb3J0ICogYXMgU21hcnRjbGlHZXR0ZXJzIGZyb20gXCIuL3NtYXJ0Y2xpLmdldHRlcnNcIjtcbmltcG9ydCAqIGFzIFNtYXJ0Y2xpSW50ZXJhY3Rpb25zIGZyb20gXCIuL3NtYXJ0Y2xpLmludGVyYWN0aW9uXCI7XG5cbmV4cG9ydCBjbGFzcyBTbWFydGNsaSB7XG4gICAgcXVlc3Rpb25zRG9uZTtcbiAgICBjb21tYW5kczppbnRlcmZhY2VzLkNsaUNvbW1hbmRbXTtcbiAgICBxdWVzdGlvbnM7XG4gICAgY29uc3RydWN0b3IoKXtcbiAgICAgICAgdGhpcy5xdWVzdGlvbnNEb25lID0gcGx1Z2lucy5xLmRlZmVyKCk7XG4gICAgfVxuICAgIGFkZENvbW1hbmQoZGVmaW5pdGlvbkFyZzp7Y29tbWFuZE5hbWU6c3RyaW5nfSl7XG4gICAgICAgIGxldCBkb25lID0gcGx1Z2lucy5xLmRlZmVyKCk7XG4gICAgICAgIGlmIChwbHVnaW5zLmFyZ3YuXy5pbmRleE9mKGRlZmluaXRpb25BcmcuY29tbWFuZE5hbWUpID09IDApIHtcbiAgICAgICAgICAgIGRvbmUucmVzb2x2ZSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGRvbmUucmVqZWN0KCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRvbmUucHJvbXNpc2U7XG4gICAgfTtcbiAgICBhZGRRdWVzdGlvbihkZWZpbml0aW9uQXJnOntxdWVzdGlvblN0cmluZzpzdHJpbmcscXVlc3Rpb25UeXBlOnN0cmluZ30pe1xuICAgICAgICBcbiAgICB9O1xuICAgIGFkZFZlcnNpb24odmVyc2lvbkFyZzpzdHJpbmcpe1xuXG4gICAgfVxuICAgIHN0YXJ0UGFyc2UoKXtcblxuICAgIH1cblxufSJdfQ==
|
||||
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNtYXJ0Y2xpLmNsYXNzZXMuc21hcnRjbGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sZ0JBQWdCLENBQUMsQ0FBQTtBQUV4QixJQUFZLE9BQU8sV0FBTSxvQkFDekIsQ0FBQyxDQUQ0QztBQUc3QztJQU9JO1FBQ0ksSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxhQUFhLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN2QyxJQUFJLENBQUMsWUFBWSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDMUMsQ0FBQztJQUNELDJCQUFRLEdBQVIsVUFBUyxNQUFNLEVBQUMsUUFBUTtRQUNwQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBQyxRQUFRLENBQUMsQ0FBQztJQUNqRCxDQUFDOztJQUNELDZCQUFVLEdBQVYsVUFBVyxhQUFrQztRQUE3QyxpQkFXQztRQVZHLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDLFlBQVk7YUFDWixJQUFJLENBQUM7WUFDRixFQUFFLENBQUMsQ0FBQyxLQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3RELElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNuQixDQUFDO1lBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ0osTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN6QixDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDUCxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN6QixDQUFDOztJQUNELDhCQUFXLEdBQVgsVUFBWSxhQUF5RDtJQUVyRSxDQUFDOztJQUNELDZCQUFVLEdBQVYsVUFBVyxVQUFpQjtRQUN4QixJQUFJLENBQUMsT0FBTyxHQUFHLFVBQVUsQ0FBQztRQUMxQixJQUFJLENBQUMsWUFBWTthQUNaLElBQUksQ0FBQztRQUVOLENBQUMsQ0FBQyxDQUFBO0lBQ1YsQ0FBQztJQUNELCtCQUFZLEdBQVo7UUFBQSxpQkFXQztRQVZHLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDLFlBQVk7YUFDWixJQUFJLENBQUM7WUFDRixFQUFFLENBQUEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLEtBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxDQUFBLENBQUM7Z0JBQ3hELElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNuQixDQUFDO1lBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ0osSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2xCLENBQUM7WUFBQSxDQUFDO1FBQ04sQ0FBQyxDQUFDLENBQUM7UUFDUCxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN4QixDQUFDO0lBQ0QsNkJBQVUsR0FBVjtRQUNJLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVMLGVBQUM7QUFBRCxDQXJEQSxBQXFEQyxJQUFBO0FBckRZLGdCQUFRLFdBcURwQixDQUFBIiwiZmlsZSI6InNtYXJ0Y2xpLmNsYXNzZXMuc21hcnRjbGkuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXCJ0eXBpbmdzLWdsb2JhbFwiO1xuXG5pbXBvcnQgKiBhcyBwbHVnaW5zIGZyb20gXCIuL3NtYXJ0Y2xpLnBsdWdpbnNcIlxuaW1wb3J0ICogYXMgU21hcnRjbGlJbnRlcmFjdGlvbnMgZnJvbSBcIi4vc21hcnRjbGkuaW50ZXJhY3Rpb25cIjtcblxuZXhwb3J0IGNsYXNzIFNtYXJ0Y2xpIHtcbiAgICBhcmd2O1xuICAgIHF1ZXN0aW9uc0RvbmU7XG4gICAgcGFyc2VTdGFydGVkO1xuICAgIGNvbW1hbmRzO1xuICAgIHF1ZXN0aW9ucztcbiAgICB2ZXJzaW9uOnN0cmluZztcbiAgICBjb25zdHJ1Y3Rvcigpe1xuICAgICAgICB0aGlzLmFyZ3YgPSBwbHVnaW5zLmFyZ3Y7XG4gICAgICAgIHRoaXMucXVlc3Rpb25zRG9uZSA9IHBsdWdpbnMucS5kZWZlcigpO1xuICAgICAgICB0aGlzLnBhcnNlU3RhcnRlZCA9IHBsdWdpbnMucS5kZWZlcigpO1xuICAgIH1cbiAgICBhZGRBbGlhcyhrZXlBcmcsYWxpYXNBcmcpe1xuICAgICAgICB0aGlzLmFyZ3YgPSB0aGlzLmFyZ3YuYWxpYXMoa2V5QXJnLGFsaWFzQXJnKTtcbiAgICB9O1xuICAgIGFkZENvbW1hbmQoZGVmaW5pdGlvbkFyZzp7Y29tbWFuZE5hbWU6c3RyaW5nfSl7XG4gICAgICAgIGxldCBkb25lID0gcGx1Z2lucy5xLmRlZmVyKCk7XG4gICAgICAgIHRoaXMucGFyc2VTdGFydGVkXG4gICAgICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuYXJndi5fLmluZGV4T2YoZGVmaW5pdGlvbkFyZy5jb21tYW5kTmFtZSkgPT0gMCkge1xuICAgICAgICAgICAgICAgICAgICBkb25lLnJlc29sdmUoKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZG9uZS5yZWplY3QoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIGRvbmUucHJvbXNpc2U7XG4gICAgfTtcbiAgICBhZGRRdWVzdGlvbihkZWZpbml0aW9uQXJnOntxdWVzdGlvblN0cmluZzpzdHJpbmcscXVlc3Rpb25UeXBlOnN0cmluZ30pe1xuICAgICAgICBcbiAgICB9O1xuICAgIGFkZFZlcnNpb24odmVyc2lvbkFyZzpzdHJpbmcpe1xuICAgICAgICB0aGlzLnZlcnNpb24gPSB2ZXJzaW9uQXJnO1xuICAgICAgICB0aGlzLnBhcnNlU3RhcnRlZFxuICAgICAgICAgICAgLnRoZW4oKCkgPT4ge1xuXG4gICAgICAgICAgICB9KVxuICAgIH1cbiAgICBzdGFuZGFyZFRhc2soKXtcbiAgICAgICAgbGV0IGRvbmUgPSBwbHVnaW5zLnEuZGVmZXIoKTtcbiAgICAgICAgdGhpcy5wYXJzZVN0YXJ0ZWRcbiAgICAgICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICBpZihwbHVnaW5zLmFyZ3YuXy5sZW5ndGggPT0gMCB8fCB0aGlzLmNvbW1hbmRzLmxlbmd0aCA9PSAwKXtcbiAgICAgICAgICAgICAgICAgICAgZG9uZS5yZXNvbHZlKCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgZG9uZS5yZWplY3QoKTtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBkb25lLnByb21pc2U7XG4gICAgfVxuICAgIHN0YXJ0UGFyc2UoKXtcbiAgICAgICAgdGhpcy5wYXJzZVN0YXJ0ZWQucmVzb2x2ZSgpO1xuICAgIH1cblxufSJdfQ==
|
||||
|
30
dist/smartcli.getters.d.ts
vendored
30
dist/smartcli.getters.d.ts
vendored
@ -1,30 +0,0 @@
|
||||
import "typings-global";
|
||||
import * as interfaces from "./smartcli.interfaces";
|
||||
/**
|
||||
* gets the second or higher value of plugins.argv._ if specified and returns it as commandArgument
|
||||
* @param argumentLevel
|
||||
* @returns {{specified: (boolean|boolean), name}}
|
||||
*/
|
||||
export declare let commandArgument: (argumentLevel: any) => interfaces.CliCommandArgument;
|
||||
/**
|
||||
* returns array with commandArgs
|
||||
* @returns {CliCommandArgument[]}
|
||||
*/
|
||||
export declare let commandArgs: () => interfaces.CliCommandArgument[];
|
||||
/**
|
||||
* returns complete command array
|
||||
* @returns {any}
|
||||
*/
|
||||
export declare let commandArray: () => string[];
|
||||
/**
|
||||
* returns a cli option
|
||||
* @param optionName
|
||||
* @returns {CliOption}
|
||||
*/
|
||||
export declare let option: (optionName: string) => interfaces.CliOption;
|
||||
export declare let options: () => {};
|
||||
/**
|
||||
* returns Directory of cwd
|
||||
* @returns {{path: string}}
|
||||
*/
|
||||
export declare let cwd: () => interfaces.Directory;
|
89
dist/smartcli.getters.js
vendored
89
dist/smartcli.getters.js
vendored
File diff suppressed because one or more lines are too long
19
dist/smartcli.interfaces.d.ts
vendored
19
dist/smartcli.interfaces.d.ts
vendored
@ -1,19 +0,0 @@
|
||||
import "typings-global";
|
||||
export interface CliCommand {
|
||||
specified: boolean;
|
||||
name: string;
|
||||
arguments: CliCommandArgument[];
|
||||
}
|
||||
export interface CliOption {
|
||||
name: string;
|
||||
specified: boolean;
|
||||
value: any;
|
||||
}
|
||||
export interface Directory {
|
||||
path: string;
|
||||
}
|
||||
export interface CliCommandArgument {
|
||||
specified: boolean;
|
||||
name: string;
|
||||
level: number;
|
||||
}
|
4
dist/smartcli.interfaces.js
vendored
4
dist/smartcli.interfaces.js
vendored
@ -1,4 +0,0 @@
|
||||
"use strict";
|
||||
require("typings-global");
|
||||
|
||||
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNtYXJ0Y2xpLmludGVyZmFjZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sZ0JBQWdCLENBQUMsQ0FBQSIsImZpbGUiOiJzbWFydGNsaS5pbnRlcmZhY2VzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFwidHlwaW5ncy1nbG9iYWxcIjtcblxuZXhwb3J0IGludGVyZmFjZSBDbGlDb21tYW5kIHtcbiAgICBzcGVjaWZpZWQ6IGJvb2xlYW47XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIGFyZ3VtZW50czpDbGlDb21tYW5kQXJndW1lbnRbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDbGlPcHRpb24ge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBzcGVjaWZpZWQ6Ym9vbGVhbjtcbiAgICB2YWx1ZTogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERpcmVjdG9yeSB7XG4gICAgcGF0aDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENsaUNvbW1hbmRBcmd1bWVudCB7XG4gICAgc3BlY2lmaWVkOmJvb2xlYW47XG4gICAgbmFtZTpzdHJpbmc7XG4gICAgbGV2ZWw6bnVtYmVyO1xufSJdfQ==
|
4
dist/smartcli.plugins.js
vendored
4
dist/smartcli.plugins.js
vendored
@ -1,6 +1,6 @@
|
||||
"use strict";
|
||||
require("typings-global");
|
||||
exports.argv = require('yargs').argv;
|
||||
exports.argv = require('yargs');
|
||||
exports.beautylog = require("beautylog");
|
||||
exports.cliff = require("cliff");
|
||||
exports.inquirer = require("inquirer");
|
||||
@ -8,4 +8,4 @@ exports.path = require("path");
|
||||
exports.q = require("q");
|
||||
exports.smartparam = require("smartparam");
|
||||
|
||||
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNtYXJ0Y2xpLnBsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sZ0JBQWdCLENBQUMsQ0FBQTtBQUViLFlBQUksR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDO0FBQzdCLGlCQUFTLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBQ2pDLGFBQUssR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDekIsZ0JBQVEsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDL0IsWUFBSSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUN2QixTQUFDLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ2pCLGtCQUFVLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDIiwiZmlsZSI6InNtYXJ0Y2xpLnBsdWdpbnMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXCJ0eXBpbmdzLWdsb2JhbFwiO1xuXG5leHBvcnQgbGV0IGFyZ3YgPSByZXF1aXJlKCd5YXJncycpLmFyZ3Y7XG5leHBvcnQgbGV0IGJlYXV0eWxvZyA9IHJlcXVpcmUoXCJiZWF1dHlsb2dcIik7XG5leHBvcnQgbGV0IGNsaWZmID0gcmVxdWlyZShcImNsaWZmXCIpO1xuZXhwb3J0IGxldCBpbnF1aXJlciA9IHJlcXVpcmUoXCJpbnF1aXJlclwiKTtcbmV4cG9ydCBsZXQgcGF0aCA9IHJlcXVpcmUoXCJwYXRoXCIpO1xuZXhwb3J0IGxldCBxID0gcmVxdWlyZShcInFcIik7XG5leHBvcnQgbGV0IHNtYXJ0cGFyYW0gPSByZXF1aXJlKFwic21hcnRwYXJhbVwiKTsiXX0=
|
||||
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNtYXJ0Y2xpLnBsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sZ0JBQWdCLENBQUMsQ0FBQTtBQUViLFlBQUksR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDeEIsaUJBQVMsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDakMsYUFBSyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUN6QixnQkFBUSxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUMvQixZQUFJLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ3ZCLFNBQUMsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDakIsa0JBQVUsR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUMiLCJmaWxlIjoic21hcnRjbGkucGx1Z2lucy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBcInR5cGluZ3MtZ2xvYmFsXCI7XG5cbmV4cG9ydCBsZXQgYXJndiA9IHJlcXVpcmUoJ3lhcmdzJyk7XG5leHBvcnQgbGV0IGJlYXV0eWxvZyA9IHJlcXVpcmUoXCJiZWF1dHlsb2dcIik7XG5leHBvcnQgbGV0IGNsaWZmID0gcmVxdWlyZShcImNsaWZmXCIpO1xuZXhwb3J0IGxldCBpbnF1aXJlciA9IHJlcXVpcmUoXCJpbnF1aXJlclwiKTtcbmV4cG9ydCBsZXQgcGF0aCA9IHJlcXVpcmUoXCJwYXRoXCIpO1xuZXhwb3J0IGxldCBxID0gcmVxdWlyZShcInFcIik7XG5leHBvcnQgbGV0IHNtYXJ0cGFyYW0gPSByZXF1aXJlKFwic21hcnRwYXJhbVwiKTsiXX0=
|
||||
|
@ -1,42 +0,0 @@
|
||||
import "typings-global";
|
||||
|
||||
import "./smartcli.interfaces";
|
||||
import plugins = require("./smartcli.plugins");
|
||||
|
||||
|
||||
/**
|
||||
* checks for an special command argument at a certain position, returns true if matches, returns false if not
|
||||
* @param level
|
||||
* @returns {boolean}
|
||||
*/
|
||||
export let commandArgument = function(commandArgumentString:string,level:number = 1):boolean {
|
||||
if(commandArgumentPresence(level) && (plugins.argv._[level] == commandArgumentString )) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
};
|
||||
|
||||
export let commandArgumentPresence = function(level:number = 1) {
|
||||
if(plugins.argv._.length >= (level + 1)) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
};
|
||||
|
||||
/**
|
||||
* checks for a specific option string, returns true if yes, returns false if no
|
||||
* @returns {boolean}
|
||||
*/
|
||||
export let option = function(optionString):boolean {
|
||||
if(plugins.smartparam.exists(plugins.argv, optionString)) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
};
|
||||
|
||||
export let optionPresence = function():boolean {
|
||||
if (plugins.argv.indexOf() != -1) {
|
||||
return true
|
||||
}
|
||||
return false;
|
||||
};
|
@ -1,35 +1,59 @@
|
||||
import "typings-global";
|
||||
|
||||
import * as interfaces from "./smartcli.interfaces"
|
||||
import * as plugins from "./smartcli.plugins"
|
||||
import * as SmartcliChecks from "./smartcli.checks";
|
||||
import * as SmartcliGetters from "./smartcli.getters";
|
||||
import * as SmartcliInteractions from "./smartcli.interaction";
|
||||
|
||||
export class Smartcli {
|
||||
argv;
|
||||
questionsDone;
|
||||
commands:interfaces.CliCommand[];
|
||||
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();
|
||||
if (plugins.argv._.indexOf(definitionArg.commandName) == 0) {
|
||||
this.parseStarted
|
||||
.then(() => {
|
||||
if (this.argv._.indexOf(definitionArg.commandName) == 0) {
|
||||
done.resolve();
|
||||
} else {
|
||||
return done.reject();
|
||||
}
|
||||
});
|
||||
return done.promsise;
|
||||
};
|
||||
addQuestion(definitionArg:{questionString:string,questionType:string}){
|
||||
|
||||
};
|
||||
addVersion(versionArg:string){
|
||||
this.version = versionArg;
|
||||
this.parseStarted
|
||||
.then(() => {
|
||||
|
||||
})
|
||||
}
|
||||
standardTask(){
|
||||
let done = plugins.q.defer();
|
||||
this.parseStarted
|
||||
.then(() => {
|
||||
if(plugins.argv._.length == 0 || this.commands.length == 0){
|
||||
done.resolve();
|
||||
} else {
|
||||
done.reject();
|
||||
};
|
||||
});
|
||||
return done.promise;
|
||||
}
|
||||
startParse(){
|
||||
|
||||
this.parseStarted.resolve();
|
||||
}
|
||||
|
||||
}
|
@ -1,97 +0,0 @@
|
||||
import "typings-global";
|
||||
|
||||
import * as interfaces from "./smartcli.interfaces";
|
||||
import plugins = require("./smartcli.plugins");
|
||||
import SmartcliChecks = require("./smartcli.checks");
|
||||
|
||||
|
||||
/**
|
||||
* gets the second or higher value of plugins.argv._ if specified and returns it as commandArgument
|
||||
* @param argumentLevel
|
||||
* @returns {{specified: (boolean|boolean), name}}
|
||||
*/
|
||||
export let commandArgument = function(argumentLevel):interfaces.CliCommandArgument {
|
||||
var commandArgument:interfaces.CliCommandArgument = {
|
||||
specified: false,
|
||||
name: "undefined",
|
||||
level:argumentLevel
|
||||
};
|
||||
if(argumentLevel < 1) {
|
||||
plugins.beautylog.error("smartcli.get.argument cannot be invoked with an argumentLevel smaller than 1");
|
||||
return commandArgument;
|
||||
}
|
||||
if(SmartcliChecks.commandArgumentPresence(argumentLevel)) {
|
||||
commandArgument.specified = true;
|
||||
commandArgument.name = plugins.argv._[argumentLevel];
|
||||
}
|
||||
return commandArgument;
|
||||
};
|
||||
|
||||
/**
|
||||
* returns array with commandArgs
|
||||
* @returns {CliCommandArgument[]}
|
||||
*/
|
||||
export let commandArgs = function():interfaces.CliCommandArgument[] {
|
||||
var commandArgs:interfaces.CliCommandArgument[] = [];
|
||||
var argsArray = commandArray().slice(0);
|
||||
argsArray.shift();
|
||||
for (let item in argsArray){
|
||||
let commandArgument:interfaces.CliCommandArgument = {
|
||||
specified:true,
|
||||
name:argsArray[item],
|
||||
level: parseInt(item) + 1
|
||||
}
|
||||
commandArgs.push(commandArgument);
|
||||
}
|
||||
return commandArgs;
|
||||
};
|
||||
|
||||
/**
|
||||
* returns complete command array
|
||||
* @returns {any}
|
||||
*/
|
||||
export let commandArray = function ():string[] {
|
||||
var commandArray = plugins.argv._;
|
||||
return commandArray;
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* returns a cli option
|
||||
* @param optionName
|
||||
* @returns {CliOption}
|
||||
*/
|
||||
export let option = function(optionName:string):interfaces.CliOption {
|
||||
var cliOption:interfaces.CliOption = {
|
||||
name:optionName,
|
||||
specified: false,
|
||||
value: false
|
||||
};
|
||||
if (plugins.smartparam.exists(plugins.argv,optionName)) {
|
||||
cliOption.name = optionName;
|
||||
cliOption.specified = true;
|
||||
cliOption.value = plugins.argv[optionName] //we already know from the "if" above that the value is available.
|
||||
}
|
||||
return cliOption;
|
||||
};
|
||||
|
||||
|
||||
export let options = function() {
|
||||
var options = {};
|
||||
for (var key in plugins.argv) {
|
||||
if (key != "_") {
|
||||
options['key'] = plugins.argv['key'];
|
||||
}
|
||||
}
|
||||
return options;
|
||||
};
|
||||
|
||||
/**
|
||||
* returns Directory of cwd
|
||||
* @returns {{path: string}}
|
||||
*/
|
||||
export let cwd = function():interfaces.Directory {
|
||||
return {
|
||||
path: process.cwd()
|
||||
}
|
||||
};
|
@ -1,23 +0,0 @@
|
||||
import "typings-global";
|
||||
|
||||
export interface CliCommand {
|
||||
specified: boolean;
|
||||
name: string;
|
||||
arguments:CliCommandArgument[];
|
||||
}
|
||||
|
||||
export interface CliOption {
|
||||
name: string;
|
||||
specified:boolean;
|
||||
value: any;
|
||||
}
|
||||
|
||||
export interface Directory {
|
||||
path: string;
|
||||
}
|
||||
|
||||
export interface CliCommandArgument {
|
||||
specified:boolean;
|
||||
name:string;
|
||||
level:number;
|
||||
}
|
@ -1,6 +1,6 @@
|
||||
import "typings-global";
|
||||
|
||||
export let argv = require('yargs').argv;
|
||||
export let argv = require('yargs');
|
||||
export let beautylog = require("beautylog");
|
||||
export let cliff = require("cliff");
|
||||
export let inquirer = require("inquirer");
|
||||
|
Loading…
Reference in New Issue
Block a user