Go to file
2020-06-17 18:24:45 +03:00
.gitignore Add standalone binary dist 2018-01-27 06:44:19 +07:00
.travis.yml ci: test Node.js 8, 10 and 11 (#26) 2018-11-08 14:42:32 +07:00
bang.js Add edit-in-place feature 2019-12-09 13:24:33 +07:00
config.js Show status bar if pattern not found 2018-12-15 14:52:48 +07:00
DOCS.md Update DOCS.md 2020-03-20 10:39:04 +03:00
find.js Search on keys, not paths 2018-12-15 14:52:48 +07:00
fx.js Add comment about terminal resize 2019-12-09 13:31:13 +07:00
index.js Add better error messages 2020-06-17 17:17:14 +03:00
install.sh Update install.sh 2020-01-08 15:38:41 +03:00
json.js Add better error messages 2020-06-17 17:17:14 +03:00
LICENSE Update LICENSE 2019-01-30 10:17:39 +07:00
package.json Include all *.js files 2020-06-17 18:24:45 +03:00
print.js Add lossless json 2019-12-13 12:48:43 +07:00
README.md Update README.md 2019-12-29 18:29:01 +03:00
reduce.js Add @ as map operation prefix 2020-01-08 18:35:14 +03:00
std.js Add edit-in-place feature 2019-12-09 13:24:33 +07:00
stream.js Add better error messages 2020-06-17 17:17:14 +03:00
test.js Add lossless json 2019-12-13 12:48:43 +07:00

fx logo

fx example

* Function eXecution

Build Status Npm Version Brew Version

Command-line JSON processing tool

Features

  • Easy to use
  • Standalone binary
  • Interactive mode 🎉
  • Streaming support 🌊

Install

npm install -g fx

Or via Homebrew

brew install fx

Or download standalone binary from releases

bash <( curl -L https://fx.wtf )

Usage

Start interactive mode without passing any arguments.

$ curl ... | fx

Or by passing filename as first argument.

$ fx data.json

Pass a few JSON files.

cat foo.json bar.json baz.json | fx .message

Use full power of JavaScript.

$ curl ... | fx '.filter(x => x.startsWith("a"))'

Access all lodash (or ramda, etc) methods by using .fxrc file.

$ curl ... | fx '_.groupBy("commit.committer.name")' '_.mapValues(_.size)'

Update JSON using spread operator.

$ echo '{"count": 0}' | fx '{...this, count: 1}'
{
  "count": 1
}

Print formatted JSON to stdout.

$ curl ... | fx .

Pipe JSON logs stream into fx.

$ kubectl logs ... -f | fx .message

And try this:

$ fx --life

Documentation

See full documentation.

License

MIT