mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2025-10-16 12:05:41 +00:00
* fix(commader): issue with namespace not found * remove `new` and add test case * fix typo * add `ExportedCommander` * rename to `StaticCommander` * commander: extend StaticCommander with commander.Command * commander typings re add `new` * commander: change `Option` and `Command` to `classes` * rename `CommanderStatic` * comander: add documentation * remove breakline * chnage `object` to `any` * commander test: add breakline * commander: update `CommanderStatic` to use `typeof`
97 lines
2.7 KiB
TypeScript
97 lines
2.7 KiB
TypeScript
import * as program from "commander";
|
|
|
|
interface ExtendedOptions extends program.CommandOptions {
|
|
isNew: any;
|
|
}
|
|
|
|
const commandInstance = new program.Command("-f");
|
|
const optionsInstance = new program.Option("-f");
|
|
|
|
program
|
|
.version('0.0.1')
|
|
.option('-p, --peppers', 'Add peppers')
|
|
.option('-P, --pineapple', 'Add pineapple')
|
|
.option('-b, --bbq', 'Add bbq sauce')
|
|
.option('-c, --cheese [type]', 'Add the specified type of cheese [marble]', 'marble')
|
|
.parse(process.argv);
|
|
|
|
console.log('you ordered a pizza with:');
|
|
if (program['peppers']) console.log(' - peppers');
|
|
if (program['pineapple']) console.log(' - pineapple');
|
|
if (program['bbq']) console.log(' - bbq');
|
|
console.log(' - %s cheese', program['cheese']);
|
|
|
|
function range(val: string) {
|
|
return val.split('..').map(Number);
|
|
}
|
|
|
|
function list(val: string) {
|
|
return val.split(',');
|
|
}
|
|
|
|
function collect(val: string, memo: string[]) {
|
|
memo.push(val);
|
|
return memo;
|
|
}
|
|
|
|
function increaseVerbosity(v: any, total: number) {
|
|
return total + 1;
|
|
}
|
|
|
|
program
|
|
.version('0.0.1')
|
|
.usage('[options] <file ...>')
|
|
.option('-i, --integer <n>', 'An integer argument', parseInt)
|
|
.option('-f, --float <n>', 'A float argument', parseFloat)
|
|
.option('-r, --range <a>..<b>', 'A range', range)
|
|
.option('-l, --list <items>', 'A list', list)
|
|
.option('-o, --optional [value]', 'An optional value')
|
|
.option('-c, --collect [value]', 'A repeatable value', collect, [])
|
|
.option('-v, --verbose', 'A value that can be increased', increaseVerbosity, 0)
|
|
.parse(process.argv);
|
|
|
|
console.log(' int: %j', program['integer']);
|
|
console.log(' float: %j', program['float']);
|
|
console.log(' optional: %j', program['optional']);
|
|
program['range'] = program['range'] || [];
|
|
console.log(' range: %j..%j', program['range'][0], program['range'][1]);
|
|
console.log(' list: %j', program['list']);
|
|
console.log(' collect: %j', program['collect']);
|
|
console.log(' verbosity: %j', program['verbose']);
|
|
console.log(' args: %j', program['args']);
|
|
|
|
program
|
|
.version('0.0.1')
|
|
.option('-f, --foo', 'enable some foo')
|
|
.option('-b, --bar', 'enable some bar')
|
|
.option('-B, --baz', 'enable some baz');
|
|
|
|
// must be before .parse() since
|
|
// node's emit() is immediate
|
|
|
|
program.on('--help', () => {
|
|
console.log(' Examples:');
|
|
console.log('');
|
|
console.log(' $ custom-help --help');
|
|
console.log(' $ custom-help -h');
|
|
console.log('');
|
|
});
|
|
|
|
program
|
|
.command('allow-unknown-option')
|
|
.allowUnknownOption()
|
|
.action(() => {
|
|
console.log('unknown option is allowed');
|
|
});
|
|
|
|
program
|
|
.version('0.0.1')
|
|
.arguments('<cmd> [env]')
|
|
.action((cmd, env) => {
|
|
console.log(cmd, env);
|
|
});
|
|
|
|
program.parse(process.argv);
|
|
|
|
console.log('stuff');
|