import { CliCommandDefinition, CliCommandDefinitionOption, CliProgramDefinition } from './types'; const globalOptions: CliCommandDefinitionOption[] = [ { name: 'global1', flag: 'g', description: 'Global 1 option description', }, { name: 'global2', flag: '-l', valueType: 'string', }, ]; const defs: CliCommandDefinition[] = [ { name: 'build', description: 'my description', handler: parsed => { // console.log(`running ${parsed.parsedCommandName}`); }, arguments: [ { name: 'src', description: 'Source file', prompt: { message: 'Enter Source', type: 'list', choices: ['a', 'b', 'c'], }, }, { name: 'dest', description: 'Desination File', isOptional: true, default: 'Default Value', }, { name: 'thirdarg', description: 'Another arg', // isOptional: true, // default value should affect this as set default: 'small', validate: /^(large|medium|small)$/i, }, ], options: [ { name: 'output', flag: '-o', description: 'output description', }, { name: 'transform', flag: '-t', description: 'test transform', transform: val => { return `tranformed:${val}`; }, }, { name: 'noValueType', description: 'to test for default valueType', }, { name: 'tobool', flag: '-b', description: 'test bool valuetype', valueType: 'boolean', }, { name: 'tobooldefaulttrue', description: 'test bool valuetype', valueType: 'boolean', default: true, }, { name: 'tostring', description: 'test string valuetype', valueType: 'string', }, { name: 'tonumber', description: 'test number valuetype', valueType: 'number', }, { name: 'validation', description: 'Validation', validate: /^(large|medium|small)$/i, valueType: 'string', }, { name: 'dashedName', description: 'Dashed Name', valueType: 'string', }, ], }, { name: 'build optional', description: 'my description (build optional)', handler: parsed => { // console.log(`running ${parsed.parsedCommandName}`); }, arguments: [ { name: 'src', }, { name: 'dest', isOptional: true, }, ], options: [ { name: 'output', flag: '-o', description: 'output description', }, ], }, { name: 'build sub', description: 'my description (build sub)', handler: parsed => { // console.log(`running ${parsed.parsedCommandName}`); }, arguments: [ { name: 'src', }, { name: 'dest', }, ], options: [ { name: 'output', flag: 'o', description: 'output description', }, ], }, { name: 'variadic', description: 'my description (variadic)', handler: parsed => { // console.log(`running ${parsed.parsedCommandName}`); }, arguments: [ { name: 'src', }, { name: 'dest', }, { name: 'variadicarg', isVariadic: true, }, ], options: [ { name: 'output', flag: '-o', description: 'output description', }, ], }, { name: 'camelCommand', description: 'Command with camel case name', handler: parsed => { // console.log(`running ${parsed.parsedCommandName}`); }, arguments: [ { name: 'src', description: 'Source file', }, { name: 'dest', description: 'Desination File', isOptional: true, default: 'Default Value', }, ], options: [ { name: 'output', flag: '-o', description: 'output description', }, ], }, ]; export const def: CliProgramDefinition = { name: 'mr', defaultCommandName: 'build', // options: globalOptions, commands: defs, description: 'global bin description', examples: ['mr myfile.txt out.txt -g', 'mr blah blah -o'], };