Base oclif command for routing index.js (to support subcommands with no colons).
For example, if you have a command foo
with topics (sub-commands) bar
and baz
:
src
├── commands
│ └── foo
│ ├── index.js
│ ├── bar.js
│ ├── baz.js
The topics bar
and baz
are called this way:
my-cli foo:bar
my-cli foo:baz
However, what if you want to call them this way?
my-cli foo bar
my-cli foo baz
oclif
does not support this out of the box.
This way of structuring sub-commands is important to support legacy CLIs so that they may be ported to oclif
, and reduce friction for adoption.
First, add this package to your CLI repo:
npm install @adobe/oclif-base-index-command
In your index.js
(see tree structure above), add BaseIndexCommand
as your class' superclass:
const BaseIndexCommand = require('@adobe/oclif-base-index-command')
class IndexCommand extends BaseIndexCommand {
// don't override run(), let the superclass handle it
// for the "no-colon" routing functionality
}
IndexCommand.description = `Your command's description here`
module.exports = IndexCommand
Now these commands will work without the colon topic separator:
my-cli foo bar
my-cli foo baz