Skip to content

Command line interface for jora (a JSON query language)

License

Notifications You must be signed in to change notification settings

discoveryjs/jora-cli

Repository files navigation

jora-cli

NPM version Build Status Coverage Status

Command line interface for Jora (a JSON query language)

jora-cli-demo

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

# 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]
";

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