Socket
Socket
Sign inDemoInstall

cac

Package Overview
Dependencies
Maintainers
3
Versions
120
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

cac - npm Package Compare versions

Comparing version 6.1.0 to 6.1.1

10

dist/Command.js

@@ -146,2 +146,8 @@ "use strict";

}
/**
* Check if the parsed options contain any unknown options
* Exit and output error when true
* @param options Original options, i.e. not camelCased one
* @param globalCommand
*/
checkUnknownOptions(options, globalCommand) {

@@ -154,10 +160,8 @@ if (!this.config.allowUnknownOptions) {

console.error(`error: Unknown option \`${name.length > 1 ? `--${name}` : `-${name}`}\``);
process.exitCode = 1;
return true;
process.exit(1);
}
}
}
return false;
}
}
exports.default = Command;

@@ -7,3 +7,3 @@ "use strict";

const path_1 = __importDefault(require("path"));
const minimost_1 = __importDefault(require("minimost"));
const minimist_1 = __importDefault(require("minimist"));
const Command_1 = __importDefault(require("./Command"));

@@ -74,14 +74,18 @@ const utils_1 = require("./utils");

for (const command of this.commands) {
const minimostOptions = utils_1.getMinimostOptions([
const minimistOptions = utils_1.getMinimistOptions([
...this.globalCommand.options,
...command.options
]);
const parsed = this.minimost(argv.slice(2), minimostOptions);
if (command.isMatched(parsed.args[0])) {
const { args, options, originalOptions } = this.minimist(argv.slice(2), minimistOptions);
if (command.isMatched(args[0])) {
this.matchedCommand = command;
this.args = parsed.args;
this.options = parsed.options;
this.emit(`command:${parsed.args[0]}`, command);
this.runCommandAction(command, this.globalCommand, parsed);
return parsed;
this.args = args;
this.options = options;
this.emit(`command:${args[0]}`, command);
this.runCommandAction(command, this.globalCommand, {
args,
options,
originalOptions
});
return { args, options };
}

@@ -92,40 +96,51 @@ }

if (command.name === '') {
const minimostOptions = utils_1.getMinimostOptions([
const minimistOptions = utils_1.getMinimistOptions([
...this.globalCommand.options,
...command.options
]);
const parsed = this.minimost(argv.slice(2), minimostOptions);
this.args = parsed.args;
this.options = parsed.options;
const { args, options, originalOptions } = this.minimist(argv.slice(2), minimistOptions);
this.matchedCommand = command;
this.args = args;
this.options = options;
this.emit(`command:!`, command);
this.runCommandAction(command, this.globalCommand, parsed);
return parsed;
this.runCommandAction(command, this.globalCommand, {
args,
options,
originalOptions
});
return { args, options };
}
}
const globalMinimostOptions = utils_1.getMinimostOptions(this.globalCommand.options);
const parsed = this.minimost(argv.slice(2), globalMinimostOptions);
this.args = parsed.args;
this.options = parsed.options;
if (parsed.options.help && this.globalCommand.hasOption('help')) {
const globalMinimistOptions = utils_1.getMinimistOptions(this.globalCommand.options);
const { args, options } = this.minimist(argv.slice(2), globalMinimistOptions);
this.args = args;
this.options = options;
if (options.help && this.globalCommand.hasOption('help')) {
this.outputHelp();
return parsed;
}
if (parsed.options.version &&
if (options.version &&
this.globalCommand.hasOption('version') &&
this.globalCommand.versionNumber) {
this.outputVersion();
return parsed;
}
this.emit('command:*');
return parsed;
return { args, options };
}
minimost(argv, minimostOptions) {
const { input: args, flags: options } = minimost_1.default(argv, minimostOptions);
minimist(argv, minimistOptions) {
const parsed = minimist_1.default(argv, Object.assign({
'--': true
}, minimistOptions));
const args = parsed._;
delete parsed._;
const options = {};
for (const key of Object.keys(parsed)) {
options[utils_1.camelcase(key)] = parsed[key];
}
return {
args,
options
options,
originalOptions: parsed
};
}
runCommandAction(command, globalCommand, { args, options }) {
runCommandAction(command, globalCommand, { args, options, originalOptions }) {
if (options.help && globalCommand.hasOption('help')) {

@@ -139,4 +154,3 @@ return this.outputHelp(true);

return;
if (command.checkUnknownOptions(options, globalCommand))
return;
command.checkUnknownOptions(originalOptions, globalCommand);
// The first one is command name

@@ -149,4 +163,3 @@ if (!command.isDefaultCommand) {

console.error(`error: missing required args for command "${command.rawName}"`);
process.exitCode = 1;
return;
process.exit(1);
}

@@ -153,0 +166,0 @@ const actionArgs = [];

@@ -31,3 +31,3 @@ "use strict";

};
exports.getMinimostOptions = (options) => {
exports.getMinimistOptions = (options) => {
return {

@@ -63,1 +63,6 @@ default: options.reduce((res, option) => {

};
exports.camelcase = (input) => {
return input.replace(/([a-z])-([a-z])/g, (_, p1, p2) => {
return p1 + p2.toUpperCase();
});
};
{
"name": "cac",
"version": "6.1.0",
"version": "6.1.1",
"description": "Simple yet powerful framework for building command-line apps.",

@@ -27,2 +27,3 @@ "repository": {

"@types/jest": "^23.3.9",
"@types/minimist": "^1.2.0",
"cz-conventional-changelog": "^2.1.0",

@@ -42,3 +43,3 @@ "eslint-config-rem": "^3.0.0",

"dependencies": {
"minimost": "^1.2.0"
"minimist": "^1.2.0"
},

@@ -45,0 +46,0 @@ "release": {

@@ -62,6 +62,12 @@ import Option, { OptionConfig } from './Option';

outputVersion(bin: string): this;
/**
* Check if the parsed options contain any unknown options
* Exit and output error when true
* @param options Original options, i.e. not camelCased one
* @param globalCommand
*/
checkUnknownOptions(options: {
[k: string]: any;
}, globalCommand: Command): boolean;
}, globalCommand: Command): void;
}
export { HelpCallback, CommandExample };

@@ -1,5 +0,3 @@

/// <reference types="minimist" />
/// <reference types="node" />
import { EventEmitter } from 'events';
import { Opts as MinimostOpts } from 'minimost';
import Command, { HelpCallback, CommandExample } from './Command';

@@ -27,3 +25,3 @@ import { OptionConfig } from './Option';

/**
* Parsed CLI options
* Parsed CLI options, camelCased
*/

@@ -47,11 +45,6 @@ options: {

parse(argv?: string[]): ParsedArgv;
minimost(argv: string[], minimostOptions: MinimostOpts): {
args: string[];
options: {
[k: string]: any;
};
};
runCommandAction(command: Command, globalCommand: Command, { args, options }: ParsedArgv): any;
private minimist;
private runCommandAction;
}
declare const cac: () => CAC;
export = cac;

@@ -8,3 +8,3 @@ import Option from './Option';

}[];
export declare const getMinimostOptions: (options: Option[]) => {
export declare const getMinimistOptions: (options: Option[]) => {
default: {};

@@ -16,1 +16,2 @@ boolean: string[];

export declare const padRight: (str: string, length: number) => string;
export declare const camelcase: (input: string) => string;
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc