Tools Overview - prompt
& Inquirer.js,
Commander.js
, Vorpal
, gluegun
Tool | Type | Goal | Features |
---|---|---|---|
prompt | utility | Command-line prompt | prompt |
inquirer.js | utility | A collection of common interactive command line user interfaces. | error feedback, asking questions, parsing input, validating answers, hierarchical prompts |
commander.js | toolkit | The complete solution for node.js command-line interfaces, inspired by Ruby's commander. | $1 |
gluegun | toolkit | Gluegun is a delightful toolkit for building Node-based command-line interfaces (CLIs) in TypeScript or modern JavaScript | parameters, patching, filesystem, system, http, prompt, print, semver, strings |
vorpal | framework | Vorpal is Node's framework for building interactive CLI applications. Based on commander.js and inquirer.js | required/optional args, prompts, generator, piped commands, persistent command history, auto-gen docs/help, autocomplete |
oclif | framework | Framework for building CLIs | Flag/Argument parsing, prompts, fast, generator, testing helpers, auto-gen docs/help, plugins, hooks, TS, auto-updating installers, autocomplete |
Educational Open Source Project to practice with JavaScript, TypeScript, Node, oclif, Git, Web Components, and Project Management
Write series of applications to create, edit, delete, and manage notes. Notes are structured in a user defined folders structure as a Git repo. Each note is saved with the git commit command. The tool is and easily extendable with plugins.
with mermaid syntax
graph TD
CLI --> CLI:G(GitHub)
CLI --> CLI:A(Architecture)
CLI:A --> CLI:Lang(TypeScript)
CLI:A --> CLI:Git(Git)
CLI:A --> CLI:MD(Markdown)
CLI:A --> CLI:Overview(Frameworks Overview)
CLI:Overview -->
CLI:Overview:Article1>Basic CLI in Node.js]
CLI:Overview:Article1 -->
CLI:Overview:Article2>CLI Tools Overview]
CLI:Overview:Article2 -->
CLI:Overview:Article3>CLI in TypeScrpipt]
note
- single commit with text data
notebook
- a collection of notes inside a folder
- Add, edit, delete note and notebook
- List note with user interaction (add an item)
- Print a note to PDF
note notebook ideas "Store all ideas"
# add folder *ideas* with a file *README.md* title *Store all ideas*
# ideas
# ├── README.md
note ideas list "A list of ideas" idea
# add a list *idea* inside *ideas/README.md*
note ideas/idea "Write a CLI for notes"
# add an *idea* list item inside *ideas/README.md*
Where a content of a ideas/README.md file will be
# About
Store all ideas
# Table Of Contents
- [A list of ideas](#idea)
# <a href="#idea">Idea</a>
- Write a CLI for notes
Originally, a user can commit with an empty git repository modification
git commit --allow-empty -m "My Note"