Skip to content
This repository has been archived by the owner on Oct 22, 2021. It is now read-only.

Base oclif command for routing index.js (to support subcommands with no colons)

License

Notifications You must be signed in to change notification settings

adobe/oclif-base-index-command

DEPRECATED ⚠️ - This library is no longer maintained.

oclif Version Downloads/week Build Status Build status License Greenkeeper badge

oclif-base-index-command

Base oclif command for routing index.js (to support subcommands with no colons).

The Problem

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.

The Solution

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

About

Base oclif command for routing index.js (to support subcommands with no colons)

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

No packages published