@abhishekwl/dict_cli 中文文档教程
dict (Stack Finance Task)
强大的基于 CLI 的同义词库可供使用。 专注于代码结构和文件组织。 使用 commander
(CLI 操作)和 chalk
(控制台着色)构建。 对 dictionaryapi.com 进行 API 调用以获取给定单词的定义、同义词、反义词和用法示例。
Usage
Usage: dict [options] [command]
Options:
-v, --version Displays the current version of the CLI
-h, --help display help for command
Commands:
def <word> Display definitions of a word
syn <word> Display synonyms of a word
ant <word> Display antonyms of a word
ex <word> Display examples of a word
play Let's play a game
help [command] display help for command
Directory Structure
.
├── README.md
├── index.js
├── package.json
├── src
│ ├── shared
│ │ ├── commands.metadata.json
│ │ ├── constants.js
│ │ └── random.words.txt
│ ├── thesaurus
│ │ ├── controller
│ │ │ ├── antonym.controller.js
│ │ │ ├── definition.controller.js
│ │ │ ├── example.controller.js
│ │ │ ├── full-dict.controller.js
│ │ │ ├── play.controller.js
│ │ │ └── synonym.controller.js
│ │ ├── enums
│ │ │ └── command.enum.js
│ │ ├── helpers
│ │ │ └── play.helper.js
│ │ └── services
│ │ └── thesaurus.service.js
│ └── util
│ └── index.js
└── yarn.lock
Done so far
- Implemented
enums
for command names. - Separation of concerns,
service
layer deals with API calls,controller
deals with CLI interaction,helpers
aid controllers with functions specific to the module. shared
directory contains globally shared resources such as constants and command information.- Utility functions are stored in
util
directory. - Error management at every stage with
try/catch
being implemented with various error types at the service level as well as the controller level. - Minimalist
index.js
entrypoint with necessary imports only.
Possible Enhancements
- Fetch API key from environment variables, storing it in code to make testing easier.
- Use jsconfig
paths
to make relative imports easier. - Implements typescript to ensure types.
- Improve CLI interface (
prettify
). - Display a friendly
did you mean
message if a command is not found. - Add autoupdate support to the CLI.
- Add
bash
/zsh
autocomplete.
Screenshots
- Definition
- Synonym
- Antonym
- Example
- Full Dictionary
- Word of the day
- Game
???? dict (Stack Finance Task)
Robust CLI based thesaurus to play with. Focused on code structure and file organisation. Built using commander
(CLI operations) and chalk
(console coloring). Makes API calls to dictionaryapi.com to fetch definitions, synonyms, antonyms and usage examples of a given word.
???? Usage
Usage: dict [options] [command]
Options:
-v, --version Displays the current version of the CLI
-h, --help display help for command
Commands:
def <word> Display definitions of a word
syn <word> Display synonyms of a word
ant <word> Display antonyms of a word
ex <word> Display examples of a word
play Let's play a game
help [command] display help for command
???? Directory Structure
.
├── README.md
├── index.js
├── package.json
├── src
│ ├── shared
│ │ ├── commands.metadata.json
│ │ ├── constants.js
│ │ └── random.words.txt
│ ├── thesaurus
│ │ ├── controller
│ │ │ ├── antonym.controller.js
│ │ │ ├── definition.controller.js
│ │ │ ├── example.controller.js
│ │ │ ├── full-dict.controller.js
│ │ │ ├── play.controller.js
│ │ │ └── synonym.controller.js
│ │ ├── enums
│ │ │ └── command.enum.js
│ │ ├── helpers
│ │ │ └── play.helper.js
│ │ └── services
│ │ └── thesaurus.service.js
│ └── util
│ └── index.js
└── yarn.lock
???? Done so far
- Implemented
enums
for command names. - Separation of concerns,
service
layer deals with API calls,controller
deals with CLI interaction,helpers
aid controllers with functions specific to the module. shared
directory contains globally shared resources such as constants and command information.- Utility functions are stored in
util
directory. - Error management at every stage with
try/catch
being implemented with various error types at the service level as well as the controller level. - Minimalist
index.js
entrypoint with necessary imports only.
???? Possible Enhancements
- Fetch API key from environment variables, storing it in code to make testing easier.
- Use jsconfig
paths
to make relative imports easier. - Implements typescript to ensure types.
- Improve CLI interface (
prettify
). - Display a friendly
did you mean
message if a command is not found. - Add autoupdate support to the CLI.
- Add
bash
/zsh
autocomplete.
???? Screenshots
- Definition
- Synonym
- Antonym
- Example
- Full Dictionary
- Word of the day
- Game