0.0.1 • Published 5 years ago
owm-cli v0.0.1
OpenWeatherMap CLI
Display weather info for a city from OpenWeatherMap API, interactively, from command line or from a config.

Usage
Make sure you have OPENWEATHERMAP_API_KEY in env when running this app. Get it at openweathermap.org. For convenience, alias yarn start or node bin/index.js to openweathermap-cli, exact steps are at the bottom of this README.
Examples:
openweathermap-cli # no args- will ask interactively for a location with detected current cityopenweathermap-cli -c Paris- will provide info for Paris in °C (default)openweathermap-cli --city Prague -scale fahrenheit- will provide info for Prague in °Fopenweathermap-cli -l- will repeat the latest queryopenweathermap-cli -i locations.txt- will provide info for locations from a text fileopenweathermap-cli --disable-geolocation- will ask interactively without asking for a location
Options
Options:
-c, --city Specify the city [string]
-z, --zip Specify the zip code [string]
-l, --latest-query Use latest query [boolean]
-s, --scale Define a scale to use [string] [default: "celsius"]
-g, --disable-geolocation Disable geolocation (enabled by default)
[boolean] [default: false]
-i, --import Import a file with multiple locations [string]
-v, --version Show version number [boolean]
-h, --help Show help [boolean]Multiple locations config file
Specify up to 10 different cities or zip codes from a file (e.g. locations.txt), each on a separate line, and import with -i flag.
Paris
Barcelona
PragueStack
- Node.js (v12 LTS), Yarn, Babel, Flow
- ESlint, Prettier
- Jest, Chai, Sinon
- Got (requirement, used for API fetching)
- Yargs (great time saver when parsing CLI args)
Possible improvements
- better UX (not a CLI in the ideal scenario, who looks for the weather in CLI?)
- better API (this one is slow and limited, we should create our own and connect to different providers maybe)
- better error handling, error messages, retrying, any maybe caching
- dependency injection mechanism for clearer classes and better testing
- debug / log messages (if specified from command line)
CliParserclass could be refactored into smaller pieces and tested more thoroughly- integration tests
Development
- Clone and install
git clone https://github.com/jakubzitny/openweathermap-cli
cd openweathermap-cli
yarn- Build it
yarn build- Check and test
yarn flow
yarn prettier
yarn lint
yarn test- Run
yarn start --help
yarn start
yarn start -c Prague
# or with alias
alias openweathermap-cli="node bin/index.js"
openweathermap-cli --help
openweathermap-cli -c Prague
openweathermap-cli --city Paris -scale fahrenheit0.0.1
5 years ago