add to ndjson and to jsonl to the standard library (#10519)

follow up to
- #10283

# Description
even though it appears defining `to foo` does not allow to do `save
x.foo` for free (see https://github.com/nushell/nushell/issues/10429),
because #10283 did add `from ndjson` and `from jsonl` to the standard
library, i thought adding their `to ...` counterpart would make sense
😋

# User-Facing Changes
users can now convert structured data back to NDJSON and JSONL 👌

# Tests + Formatting
this PR adds the exact same tests as for the `from ...` commands
- structured data is in `result` and the string is now the expected
- the two invalid `from ...` tests cannot be reproduced for `to ...`
afaik

# After Submitting
This commit is contained in:
Antoine Stevan
2023-10-02 11:50:07 +02:00
committed by GitHub
parent b9ecfeb890
commit 4b9ec03110
2 changed files with 63 additions and 13 deletions

View File

@ -9,12 +9,22 @@
# These functions help `open` the files with unsupported extensions such as ndjson.
#
# Convert from ndjson to structured data.
# Convert from [NDJSON](http://ndjson.org/) to structured data.
export def "from ndjson" []: string -> any {
from json --objects
}
# Convert from jsonl to structured data.
# Convert from [JSONL](https://jsonlines.org/) to structured data.
export def "from jsonl" []: string -> any {
from json --objects
}
# Convert structured data to [NDJSON](http://ndjson.org/).
export def "to ndjson" []: any -> string {
each { to json --raw } | to text
}
# Convert structured data to [JSONL](https://jsonlines.org/).
export def "to jsonl" []: any -> string {
each { to json --raw } | to text
}