mirror of
https://github.com/nushell/nushell.git
synced 2025-07-09 02:48:17 +02:00
Hello, this PR resolves the second request of the issue https://github.com/nushell/nushell/issues/10957, which involves using a default verb based on the request. If a URL is provided, the command will default to GET, and if data is provided, it will default to POST. This means that the following pairs of commands are equivalent: ``` http --content-type application/json http://localhost:8000 {a:1} http post --content-type application/json http://localhost:8000 {a:1} ``` ``` http http://localhost:8000 "username" http post http://localhost:8000 "username" ``` ``` http http://localhost:8000 http get http://localhost:8000 ``` The `http` command now accepts all flags of the `post` and `get` commands. It will still display the help message if no subcommand is provided, and the description has been updated accordingly. The logic in the `http` command is minimal to delegate error management responsibilities to the specific `run_get` and `run_post` functions.
Nushell core libraries and plugins
These sub-crates form both the foundation for Nu and a set of plugins which extend Nu with additional functionality.
Foundational libraries are split into two kinds of crates:
- Core crates - those crates that work together to build the Nushell language engine
- Support crates - a set of crates that support the engine with additional features like JSON support, ANSI support, and more.
Plugins are likewise also split into two types:
- Core plugins - plugins that provide part of the default experience of Nu, including access to the system properties, processes, and web-connectivity features.
- Extra plugins - these plugins run a wide range of different capabilities like working with different file types, charting, viewing binary data, and more.