https://github.com/discoveryjs/jora-cli
Command line interface for jora (a JSON query language)
https://github.com/discoveryjs/jora-cli
Last synced: about 1 year ago
JSON representation
Command line interface for jora (a JSON query language)
- Host: GitHub
- URL: https://github.com/discoveryjs/jora-cli
- Owner: discoveryjs
- License: mit
- Created: 2019-07-03T18:19:19.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2025-02-07T14:04:37.000Z (over 1 year ago)
- Last Synced: 2025-04-12T17:23:44.201Z (about 1 year ago)
- Language: JavaScript
- Homepage:
- Size: 380 KB
- Stars: 13
- Watchers: 7
- Forks: 1
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# jora-cli
[](https://www.npmjs.com/package/jora-cli)
[](https://github.com/discoveryjs/jora-cli/actions/workflows/ci.yml)
[](https://coveralls.io/github/discoveryjs/jora-cli?)
Command line interface for [Jora](https://github.com/discoveryjs/jora) (a JSON query language)

## Install
```bash
npm i -g jora-cli
```
## Usage
```bash
> jora -h
Usage:
jora [query] [options]
Options:
--no-color Suppress color output
--dry-run Don't output result, only report what it would have done
-e, --encoding Output encoding: json (default), jsonxl (snapshot9)
-f, --force Force overwriting output file
-h, --help Output usage information
-i, --input Input file
-o, --output Output file (outputs to stdout if not set)
-p, --pretty [indent] Pretty print with optionally specified indentation (4 spaces by default)
-q, --query Jora query
--verbose Output debug info about actions
-v, --version Output version
```
## Examples
- Get a single field from, e.g. "version":
```bash
jora version name, =>version)
.({ name: key, versions: value })
.[versions.size() > 1]
```
- `jora-cli` supports queries from JSONXl, and conversion between JSON and JSONXL. JSONXL is a binary replacement for JSON. It is supported by any app built on [Discovery.js](https://github.com/discoveryjs/discovery), including [JsonDiscovery](https://github.com/discoveryjs/JsonDiscovery), [CPUpro](https://github.com/discoveryjs/cpupro) and [Statoscope](https://github.com/statoscope/statoscope). JSONXL not only saves space and transfer time but also offers faster decoding and a lower memory footprint, which is beneficial for processing large datasets.
- Queries for JSONXL input work the same ways as for JSON:
```bash
jora output.jsonxl -e jsonxl
```
- Convert JSONXL into JSON
```
jora output.json
```
## Caveats
`jora-cli` takes a valid JSON and produce a valid JSON as a result. However, `jora` language could produce some values that incompatable with JSON, such values are transforming:
- `NaN`, `Infinity` and `-Infinity` are converting to `null`, that's a behaviour of `JSON.stringify()`
- `undefined`
- is convering to `null` when a result of query (top level) or an element of an array
- object entries with `undefined` as a value are eliminating
## License
MIT