classy-commander
Advanced tools
Comparing version 3.2.17 to 4.0.0
@@ -8,4 +8,4 @@ import { IocContainer } from './types'; | ||
versionFromPackage(directoryPath: string): this; | ||
execute(argv?: string[]): void; | ||
execute(argv?: string[]): Promise<void>; | ||
private getPackageVersion; | ||
} |
@@ -17,3 +17,3 @@ "use strict"; | ||
if (f) throw new TypeError("Generator is already executing."); | ||
while (_) try { | ||
while (g && (g = 0, op[0] && (_ = 0)), _) try { | ||
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; | ||
@@ -39,5 +39,6 @@ if (y = 0, t) op = [op[0] & 2, t.value]; | ||
}; | ||
exports.__esModule = true; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.Commander = void 0; | ||
// tslint:disable:no-console | ||
var chalk = require("chalk"); | ||
var cli = require("commander"); | ||
@@ -53,3 +54,3 @@ var fs = require("fs-extra"); | ||
Commander.prototype.ioc = function (iocContainer) { | ||
commander_1.setIocContainer(iocContainer); | ||
(0, commander_1.setIocContainer)(iocContainer); | ||
return this; | ||
@@ -67,3 +68,3 @@ }; | ||
} | ||
var moduleFileNames = modules_1.getUniqueModuleNames(matches); | ||
var moduleFileNames = (0, modules_1.getUniqueModuleNames)(matches); | ||
for (var _i = 0, moduleFileNames_1 = moduleFileNames; _i < moduleFileNames_1.length; _i++) { | ||
@@ -88,16 +89,42 @@ var moduleFileName = moduleFileNames_1[_i]; | ||
Commander.prototype.execute = function (argv) { | ||
if (this._version) { | ||
cli.version(this._version); | ||
} | ||
var args = argv || process.argv; | ||
if (args.length <= 2) { | ||
cli.help(function (text) { return text + "\n"; }); | ||
} | ||
cli.on('command:*', function () { | ||
console.error(); | ||
console.error('Invalid command: %s\nSee --help for a list of available commands.', cli.args.join(' ')); | ||
console.error(); | ||
process.exit(1); | ||
var _a; | ||
return __awaiter(this, void 0, void 0, function () { | ||
var args, err_1, errorMessage; | ||
return __generator(this, function (_b) { | ||
switch (_b.label) { | ||
case 0: | ||
if (this._version) { | ||
cli.program.version(this._version); | ||
} | ||
args = argv || process.argv; | ||
cli.program.addHelpText('after', '\n'); | ||
if (args.length <= 2) { | ||
cli.program.outputHelp(); | ||
return [2 /*return*/]; | ||
} | ||
cli.program.on('command:*', function () { | ||
console.error(); | ||
console.error('Invalid command: %s\nSee --help for a list of available commands.', cli.program.args.join(' ')); | ||
console.error(); | ||
process.exitCode = 1; | ||
}); | ||
_b.label = 1; | ||
case 1: | ||
_b.trys.push([1, 3, , 4]); | ||
return [4 /*yield*/, cli.program.parseAsync(args)]; | ||
case 2: | ||
_b.sent(); | ||
return [3 /*break*/, 4]; | ||
case 3: | ||
err_1 = _b.sent(); | ||
process.exitCode = 1; | ||
console.error(); | ||
errorMessage = (_a = err_1.message) !== null && _a !== void 0 ? _a : err_1; | ||
console.error(chalk.red(errorMessage)); | ||
console.error(); | ||
throw err_1; | ||
case 4: return [2 /*return*/]; | ||
} | ||
}); | ||
}); | ||
cli.parse(args); | ||
}; | ||
@@ -104,0 +131,0 @@ Commander.prototype.getPackageVersion = function (packageFileName) { |
"use strict"; | ||
exports.__esModule = true; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.coerceValue = void 0; | ||
@@ -16,3 +16,3 @@ var boolean_1 = require("boolean"); | ||
else if (toType === Boolean) { | ||
return boolean_1.boolean(value); | ||
return (0, boolean_1.boolean)(value); | ||
} | ||
@@ -19,0 +19,0 @@ else { |
@@ -17,3 +17,3 @@ "use strict"; | ||
if (f) throw new TypeError("Generator is already executing."); | ||
while (_) try { | ||
while (g && (g = 0, op[0] && (_ = 0)), _) try { | ||
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; | ||
@@ -39,9 +39,7 @@ if (y = 0, t) op = [op[0] & 2, t.value]; | ||
}; | ||
exports.__esModule = true; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.getCommandUsage = exports.getCommandDefinitionUsage = exports.registerCommand = exports.getIocContainer = exports.setIocContainer = void 0; | ||
var chalk = require("chalk"); | ||
var cli = require("commander"); | ||
var _ = require("lodash"); | ||
var coercion_1 = require("./coercion"); | ||
var errors_1 = require("./errors"); | ||
var metadata_1 = require("./metadata"); | ||
@@ -61,7 +59,7 @@ var iocContainer; | ||
if (option.shortName) { | ||
result = "-" + option.shortName + ", "; | ||
result = "-".concat(option.shortName, ", "); | ||
} | ||
result += "--" + option.name.toString() + " "; | ||
result += "--".concat(option.name.toString(), " "); | ||
if (option.valueName) { | ||
result += "<" + option.valueName + ">"; | ||
result += "<".concat(option.valueName, ">"); | ||
} | ||
@@ -71,4 +69,4 @@ return result.trim(); | ||
function getParams(command, args) { | ||
var values = metadata_1.getCommandValues(command.paramsClass.prototype); | ||
var options = metadata_1.getCommandOptions(command.paramsClass.prototype); | ||
var values = (0, metadata_1.getCommandValues)(command.paramsClass.prototype); | ||
var options = (0, metadata_1.getCommandOptions)(command.paramsClass.prototype); | ||
var params = new command.paramsClass(); | ||
@@ -80,3 +78,3 @@ var paramIndex = 0; | ||
var defaultValue = params[value.name]; | ||
var paramValue = coercion_1.coerceValue(argValue, value.type, defaultValue); | ||
var paramValue = (0, coercion_1.coerceValue)(argValue, value.type, defaultValue); | ||
params[value.name] = paramValue; | ||
@@ -100,4 +98,5 @@ } | ||
function registerCommandOption(cliCommand, paramsClass, option) { | ||
var _a; | ||
var optionUsage = getOptionUsage(option); | ||
var coercedValue = !option.valueName ? undefined : (function (value) { | ||
var coercedValue = (function (value) { | ||
if (option.valueName && option.type === Number) { | ||
@@ -112,3 +111,3 @@ return +value; | ||
var defaultValue = params[option.name]; | ||
cliCommand.option(optionUsage, option.description, coercedValue, defaultValue); | ||
cliCommand.option(optionUsage, (_a = option.description) !== null && _a !== void 0 ? _a : '', coercedValue, defaultValue); | ||
} | ||
@@ -119,7 +118,7 @@ function registerCommand(commandDefinition) { | ||
var usage = getCommandDefinitionUsage(commandDefinition); | ||
var cliCommand = cli.command(usage); | ||
var cliCommand = cli.program.command(usage); | ||
if (commandDefinition.description) { | ||
cliCommand.description(commandDefinition.description); | ||
} | ||
var options = metadata_1.getCommandOptions(commandDefinition.paramsClass.prototype); | ||
var options = (0, metadata_1.getCommandOptions)(commandDefinition.paramsClass.prototype); | ||
for (var _i = 0, options_2 = options; _i < options_2.length; _i++) { | ||
@@ -135,7 +134,6 @@ var option = options_2[_i]; | ||
return __awaiter(_this, void 0, void 0, function () { | ||
var commandInstance, params, err_1; | ||
var commandInstance, params; | ||
return __generator(this, function (_a) { | ||
switch (_a.label) { | ||
case 0: | ||
_a.trys.push([0, 2, , 3]); | ||
commandInstance = instantiateCommand(commandDefinition); | ||
@@ -146,12 +144,3 @@ params = getParams(commandDefinition, args); | ||
_a.sent(); | ||
return [3 /*break*/, 3]; | ||
case 2: | ||
err_1 = _a.sent(); | ||
// tslint:disable:no-console | ||
console.error(); | ||
console.error(chalk.red(errors_1.errorToString(err_1))); | ||
console.error(); | ||
process.exit(1); | ||
return [3 /*break*/, 3]; | ||
case 3: return [2 /*return*/]; | ||
return [2 /*return*/]; | ||
} | ||
@@ -164,8 +153,8 @@ }); | ||
function valueDefinitionToUsageString(value) { | ||
var name = "" + value.name + (value.variadic ? '...' : ''); | ||
var usage = value.optional ? "[" + name + "]" : "<" + name + ">"; | ||
var name = "".concat(value.name).concat(value.variadic ? '...' : ''); | ||
var usage = value.optional ? "[".concat(name, "]") : "<".concat(name, ">"); | ||
return usage; | ||
} | ||
function getCommandDefinitionUsage(commandDefinition) { | ||
var values = metadata_1.getCommandValues(commandDefinition.paramsClass.prototype); | ||
var values = (0, metadata_1.getCommandValues)(commandDefinition.paramsClass.prototype); | ||
var valuesUsage = _ | ||
@@ -181,3 +170,3 @@ .chain(values) | ||
.value(); | ||
var usage = (commandDefinition.name + " " + valuesUsage).trim(); | ||
var usage = "".concat(commandDefinition.name, " ").concat(valuesUsage).trim(); | ||
return usage; | ||
@@ -184,0 +173,0 @@ } |
import { CommandClass, CommandOptionDefinitionOptions } from './types'; | ||
import { CommandParamsClass } from './types'; | ||
export declare const command: <TParams>(name: string, paramsClass: CommandParamsClass<TParams>, description?: string | undefined) => (target: CommandClass<TParams>) => void; | ||
export declare const option: (options?: CommandOptionDefinitionOptions | undefined) => (target: any, name: string) => void; | ||
export declare const command: <TParams>(name: string, paramsClass: CommandParamsClass<TParams>, description?: string) => (target: CommandClass<TParams>) => void; | ||
export declare const option: (options?: CommandOptionDefinitionOptions) => (target: any, name: string) => void; | ||
export interface ValueOptions { | ||
@@ -11,2 +11,2 @@ optional?: boolean; | ||
} | ||
export declare const value: (options?: ValueOptions | undefined) => (target: any, name: string) => void; | ||
export declare const value: (options?: ValueOptions) => (target: any, name: string) => void; |
"use strict"; | ||
exports.__esModule = true; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.value = exports.option = exports.command = void 0; | ||
var commander_1 = require("./commander"); | ||
var meta = require("./metadata"); | ||
exports.command = function (name, paramsClass, description) { | ||
var command = function (name, paramsClass, description) { | ||
return function (target) { | ||
commander_1.registerCommand({ | ||
(0, commander_1.registerCommand)({ | ||
name: name, | ||
description: description, | ||
type: target, | ||
paramsClass: paramsClass | ||
paramsClass: paramsClass, | ||
}); | ||
}; | ||
}; | ||
exports.option = function (options) { return function (target, name) { | ||
exports.command = command; | ||
var option = function (options) { return function (target, name) { | ||
meta.addCommandOption(target, name, options); | ||
}; }; | ||
exports.value = function (options) { return function (target, name) { | ||
exports.option = option; | ||
var value = function (options) { return function (target, name) { | ||
meta.addCommandValue({ | ||
@@ -27,1 +29,2 @@ name: name, | ||
}; }; | ||
exports.value = value; |
"use strict"; | ||
exports.__esModule = true; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.errorToString = void 0; | ||
function errorToString(err) { | ||
return err.stack || err.message || "" + err; | ||
return err.stack || err.message || "".concat(err); | ||
} | ||
exports.errorToString = errorToString; |
@@ -13,3 +13,3 @@ import { Commander } from './classy'; | ||
export declare function commandsFromDirectory(directoryPath: string): Promise<Commander>; | ||
export declare function execute(argv?: string[]): void; | ||
export declare function execute(argv?: string[]): Promise<void>; | ||
export declare function getCommandUsageString(commandClass: CommandClass<any>): string; |
27
index.js
"use strict"; | ||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { | ||
if (k2 === undefined) k2 = k; | ||
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); | ||
}) : (function(o, m, k, k2) { | ||
if (k2 === undefined) k2 = k; | ||
o[k2] = m[k]; | ||
})); | ||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { | ||
@@ -24,3 +17,3 @@ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } | ||
if (f) throw new TypeError("Generator is already executing."); | ||
while (_) try { | ||
while (g && (g = 0, op[0] && (_ = 0)), _) try { | ||
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; | ||
@@ -46,10 +39,10 @@ if (y = 0, t) op = [op[0] & 2, t.value]; | ||
}; | ||
exports.__esModule = true; | ||
exports.getCommandUsageString = exports.execute = exports.commandsFromDirectory = exports.ioc = exports.versionFromPackage = exports.version = void 0; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.getCommandUsageString = exports.execute = exports.commandsFromDirectory = exports.ioc = exports.versionFromPackage = exports.version = exports.value = exports.option = exports.command = void 0; | ||
var classy_1 = require("./classy"); | ||
var commander_1 = require("./commander"); | ||
var decorators_1 = require("./decorators"); | ||
__createBinding(exports, decorators_1, "command"); | ||
__createBinding(exports, decorators_1, "option"); | ||
__createBinding(exports, decorators_1, "value"); | ||
Object.defineProperty(exports, "command", { enumerable: true, get: function () { return decorators_1.command; } }); | ||
Object.defineProperty(exports, "option", { enumerable: true, get: function () { return decorators_1.option; } }); | ||
Object.defineProperty(exports, "value", { enumerable: true, get: function () { return decorators_1.value; } }); | ||
var commander = new classy_1.Commander(); | ||
@@ -82,8 +75,12 @@ // tslint:disable-next-line:no-shadowed-variable | ||
function execute(argv) { | ||
return commander.execute(argv); | ||
return __awaiter(this, void 0, void 0, function () { | ||
return __generator(this, function (_a) { | ||
return [2 /*return*/, commander.execute(argv)]; | ||
}); | ||
}); | ||
} | ||
exports.execute = execute; | ||
function getCommandUsageString(commandClass) { | ||
return commander_1.getCommandUsage(commandClass); | ||
return (0, commander_1.getCommandUsage)(commandClass); | ||
} | ||
exports.getCommandUsageString = getCommandUsageString; |
@@ -13,10 +13,12 @@ "use strict"; | ||
}; | ||
var __spreadArrays = (this && this.__spreadArrays) || function () { | ||
for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; | ||
for (var r = Array(s), k = 0, i = 0; i < il; i++) | ||
for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) | ||
r[k] = a[j]; | ||
return r; | ||
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) { | ||
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { | ||
if (ar || !(i in from)) { | ||
if (!ar) ar = Array.prototype.slice.call(from, 0, i); | ||
ar[i] = from[i]; | ||
} | ||
} | ||
return to.concat(ar || Array.prototype.slice.call(from)); | ||
}; | ||
exports.__esModule = true; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.addCommandOption = exports.getCommandOptions = exports.addCommandValue = exports.getCommandValues = exports.metadataKeys = void 0; | ||
@@ -30,3 +32,3 @@ require("reflect-metadata"); | ||
function getCommandValues(paramsClassPrototype) { | ||
return __spreadArrays((Reflect.getOwnMetadata(exports.metadataKeys.values, paramsClassPrototype) || [])); | ||
return __spreadArray([], (Reflect.getOwnMetadata(exports.metadataKeys.values, paramsClassPrototype) || []), true); | ||
} | ||
@@ -52,3 +54,3 @@ exports.getCommandValues = getCommandValues; | ||
function getCommandOptions(paramsClassPrototype) { | ||
return __spreadArrays((Reflect.getOwnMetadata(exports.metadataKeys.options, paramsClassPrototype) || [])); | ||
return __spreadArray([], (Reflect.getOwnMetadata(exports.metadataKeys.options, paramsClassPrototype) || []), true); | ||
} | ||
@@ -59,6 +61,5 @@ exports.getCommandOptions = getCommandOptions; | ||
var allOptions = getCommandOptions(paramsClassPrototype); | ||
allOptions.push(__assign({ name: name, | ||
type: type }, options)); | ||
allOptions.push(__assign({ name: name, type: type }, options)); | ||
Reflect.defineMetadata(exports.metadataKeys.options, allOptions, paramsClassPrototype); | ||
} | ||
exports.addCommandOption = addCommandOption; |
"use strict"; | ||
exports.__esModule = true; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.getUniqueModuleNames = void 0; | ||
@@ -4,0 +4,0 @@ var _ = require("lodash"); |
{ | ||
"name": "classy-commander", | ||
"version": "3.2.17", | ||
"version": "4.0.0", | ||
"description": "A TypeScript wrapper for Commander that lets you easily declare commands using classes & decorators and provides strongly typed arguments.", | ||
@@ -26,8 +26,8 @@ "main": "index.js", | ||
"chalk": "3.0.0", | ||
"commander": "4.1.1", | ||
"commander": "^11.1.0", | ||
"fs-extra": "8.1.0", | ||
"glob": "7.1.6", | ||
"lodash": "4.17.20", | ||
"lodash": "^4.17.21", | ||
"reflect-metadata": "0.1.13" | ||
} | ||
} |
@@ -28,6 +28,6 @@ export interface CommandValueDefinition { | ||
} | ||
export declare type CommandParamsClass<T> = new () => T; | ||
export declare type CommandClass<TParams> = new (...args: any[]) => Command<TParams>; | ||
export type CommandParamsClass<T> = new () => T; | ||
export type CommandClass<TParams> = new (...args: any[]) => Command<TParams>; | ||
export interface IocContainer { | ||
get: <T>(Class: new (...args: any[]) => T) => T; | ||
} |
"use strict"; | ||
exports.__esModule = true; | ||
Object.defineProperty(exports, "__esModule", { value: true }); |
40119
630
+ Addedcommander@11.1.0(transitive)
+ Addedlodash@4.17.21(transitive)
- Removedcommander@4.1.1(transitive)
- Removedlodash@4.17.20(transitive)
Updatedcommander@^11.1.0
Updatedlodash@^4.17.21