nushell/crates
Bahex 3182adb6a0
Url split query (#14211)
Addresses the following points from #14162

> - There is no built-in counterpart to url build-query for splitting a
query string

There is `from url`, which, due to naming, is a little hard to discover
and suffers from the following point

> - url parse can create records with duplicate keys
> - url parse's params should either:
>   - ~group the same keys into a list.~
> - instead of a record, be a key-value table. (table<key: string,
value: string>)

# Description

## `url split-query`

Counterpart to `url build-query`, splits a url encoded query string to
key value pairs, represented as `table<key: string, value: string>`

```
> "a=one&a=two&b=three" | url split-query
╭───┬─────┬───────╮
│ # │ key │ value │
├───┼─────┼───────┤
│ 0 │ a   │ one   │
│ 1 │ a   │ two   │
│ 2 │ b   │ three │
╰───┴─────┴───────╯
```

## `url parse`

The output's `param` field is now a table as well, mirroring the new
`url split-query`

```
> 'http://localhost?a=one&a=two&b=three' | url parse
╭──────────┬─────────────────────╮
│ scheme   │ http                │
│ username │                     │
│ password │                     │
│ host     │ localhost           │
│ port     │                     │
│ path     │ /                   │
│ query    │ a=one&a=two&b=three │
│ fragment │                     │
│          │ ╭───┬─────┬───────╮ │
│ params   │ │ # │ key │ value │ │
│          │ ├───┼─────┼───────┤ │
│          │ │ 0 │ a   │ one   │ │
│          │ │ 1 │ a   │ two   │ │
│          │ │ 2 │ b   │ three │ │
│          │ ╰───┴─────┴───────╯ │
╰──────────┴─────────────────────╯
```

# User-Facing Changes

- `url parse`'s output has the mentioned change, which is backwards
incompatible.
2024-11-06 07:35:37 -06:00
..
nu-cli Remove as_i64 and as_f64 (#14258) 2024-11-05 09:28:56 +01:00
nu-cmd-base Bump to 0.99.2 (#14136) 2024-10-20 23:12:41 +02:00
nu-cmd-extra Bump to 0.99.2 (#14136) 2024-10-20 23:12:41 +02:00
nu-cmd-lang fix $env.FILE_PWD and $env.CURRENT_FILE inside use (#14101) 2024-11-05 14:12:01 +08:00
nu-cmd-plugin Make plugin list read state from plugin registry file as well (#14085) 2024-10-20 23:12:57 +02:00
nu-color-config Improve CellPath display output (#14197) 2024-11-02 10:28:10 -05:00
nu-command Url split query (#14211) 2024-11-06 07:35:37 -06:00
nu-derive-value Bump to 0.99.2 (#14136) 2024-10-20 23:12:41 +02:00
nu-engine add command_type to help (#14165) 2024-10-24 19:06:49 +02:00
nu-explore Drop once_cell dependency (#14198) 2024-10-29 17:33:46 +01:00
nu-glob Bump to 0.99.2 (#14136) 2024-10-20 23:12:41 +02:00
nu-json Bump fancy-regex from 0.13.0 to 0.14.0 (#14207) 2024-10-30 10:51:21 +08:00
nu-lsp Fix LSP non-ascii characters offset issues. (#14002) 2024-10-29 06:35:37 -05:00
nu-parser Div, mod, and floor div overhaul (#14157) 2024-11-04 18:03:48 +01:00
nu-path Bump to 0.99.2 (#14136) 2024-10-20 23:12:41 +02:00
nu-plugin Update to rust 1.80.1 (#14106) 2024-10-20 23:14:11 +02:00
nu-plugin-core Bump to 0.99.2 (#14136) 2024-10-20 23:12:41 +02:00
nu-plugin-engine Bump to 0.99.2 (#14136) 2024-10-20 23:12:41 +02:00
nu-plugin-protocol Bump to 0.99.2 (#14136) 2024-10-20 23:12:41 +02:00
nu-plugin-test-support Bump to 0.99.2 (#14136) 2024-10-20 23:12:41 +02:00
nu-pretty-hex Bump to 0.99.2 (#14136) 2024-10-20 23:12:41 +02:00
nu-protocol Remove as_i64 and as_f64 (#14258) 2024-11-05 09:28:56 +01:00
nu-std No longer autoload deprecated-dirs (#14242) 2024-11-05 21:53:41 +01:00
nu-system Drop once_cell dependency (#14198) 2024-10-29 17:33:46 +01:00
nu-table Bump crate-ci/typos from 1.26.8 to 1.27.0 (#14272) 2024-11-06 10:48:34 +08:00
nu-term-grid Bump to 0.99.2 (#14136) 2024-10-20 23:12:41 +02:00
nu-test-support Fix quoting in to nuon and refactor quoting functions (#14180) 2024-10-29 07:43:26 -05:00
nu-utils Switch to unicase's to_folded_case (#14255) 2024-11-05 09:39:08 +01:00
nu_plugin_custom_values Bump to 0.99.2 (#14136) 2024-10-20 23:12:41 +02:00
nu_plugin_example Remove as_i64 and as_f64 (#14258) 2024-11-05 09:28:56 +01:00
nu_plugin_formats Bump to 0.99.2 (#14136) 2024-10-20 23:12:41 +02:00
nu_plugin_gstat Bump to 0.99.2 (#14136) 2024-10-20 23:12:41 +02:00
nu_plugin_inc Bump to 0.99.2 (#14136) 2024-10-20 23:12:41 +02:00
nu_plugin_nu_example Bump to 0.99.2 (#14136) 2024-10-20 23:12:41 +02:00
nu_plugin_polars Remove as_i64 and as_f64 (#14258) 2024-11-05 09:28:56 +01:00
nu_plugin_python Bump to 0.99.2 (#14136) 2024-10-20 23:12:41 +02:00
nu_plugin_query Bump scraper from 0.20.0 to 0.21.0 (#14270) 2024-11-06 10:31:21 +08:00
nu_plugin_stress_internals Bump to 0.99.2 (#14136) 2024-10-20 23:12:41 +02:00
nuon Improve CellPath display output (#14197) 2024-11-02 10:28:10 -05:00
README.md Correct spelling (#4152) 2021-11-25 11:11:20 -06:00

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.