Command line interface for Jora (a JSON query language)
npm i -g jora-cli
> 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
Then you can do this wonderful requests in terminal
# get a single field, e.g. version
jora version <package.json
# get all top level dependencies count
jora -i package.json -q '(dependencies.keys() + devDependencies.keys()).size()'
# find packages with more than a single version
npm ls --json | jora "
..(dependencies.entries().({ name: key, ...value }))
.group(=>name, =>version)
.({ name: key, versions: value })
.[versions.size() > 1]
";
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 tonull
, that's a behaviour ofJSON.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
- is convering to
MIT