You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Apr 23, 2020. It is now read-only.
permits visualizing the layout of the api commands
permits painless hierarchical refactors
robust automatic help system
automatic bash/zsh/fish completion generation and installation including support for running behind npm / yarn
automatic man page generation and installation (note: this does not seem useful for CLIs that are intended to be used local to a project)
extensible (e.g. how hub seamlessly extends git)
high-fi developer experience
remove as much boilerplate as possible (e.g. singletons, globals, ...)
convention over configuration
100% type safety
How the api might look like:
A combinator api manifested as chaining. Under the hood all this is doing is building up a plain javascript object. This makes snapshot testing and debugging super easy. Also opens up the potential for powerful plugins.
Proposal:
Goals
npm
/yarn
hub
seamlessly extendsgit
)How the api might look like:
A combinator api manifested as chaining. Under the hood all this is doing is building up a plain javascript object. This makes snapshot testing and debugging super easy. Also opens up the potential for powerful plugins.
param statics might turn out to need context. Not sure yet. If so, that might manifest like so:
Commands could be brought together around a "routing tree":
Example use:
An important feature would be how ancestor commands contribute params to descendent commands. Example:
...
more to come!
Ecosystem:
oclif
problems:
- workflow issues, linking doesn't work, weird magic with TypeScript at runtime...
- confusing ish mocha-coupled testing
- ...
yargs
problems:
- expressing CLI layouts seems to fall apart at one point
- ...
commander
problems:
- expressing CLI layouts seems to fall apart at one point
- ...
The text was updated successfully, but these errors were encountered: