jora-cli
![Coverage Status](https://coveralls.io/repos/github/discoveryjs/jora-cli/badge.svg?branch=master)
Command line interface for Jora (a JSON query language)
![jora-cli-demo](https://user-images.githubusercontent.com/270491/63531735-d4fd5980-c511-11e9-95ff-ed58dc94738a.gif)
Install
npm i -g jora-cli
Usage
> jora -h
Usage:
jora [query] [options]
Options:
-h, --help Output usage information
-i, --input <filename> Input file
--no-color Suppress color output
-o, --output <filename> Output file (outputs to stdout if not set)
-p, --pretty [indent] Pretty print with optionally specified indentation (4 spaces by default)
-q, --query <query> Jora query
-s, --sandbox Output data and query in sandbox
-v, --version Output version
Examples
Then you can do this wonderful requests in terminal
jora version <package.json
jora -i package.json -q '(dependencies.keys() + devDependencies.keys()).size()'
npm ls --json | jora "
..(dependencies.entries().({ name: key, ...value }))
.group(=>name, =>version)
.({ name: key, versions: value })
.[versions.size() > 1]
";
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