fx/npm/README.md
2023-04-10 12:17:44 +02:00

1.4 KiB

fx

The JavaScript version of the fx. Short for Function eXecution or f(x).

npm i -g fx

Or use npx:

cat file.json | npx fx .param

Or use node:

cat file.json | node <(curl -s https://fx.wtf) .param

Or use deno:

cat file.json | deno run https://fx.wtf .param

Usage

Fx treats arguments as JavaScript functions. Fx passes the input data to the first function and then passes the result of the first function to the second function and so on.

echo '{"name": "world"}' | fx 'x => x.name' 'x => `Hello, ${x}!`'

Use this to access the input data. Use . at the start of the expression to access the input data without a x => x part.

echo '{"name": "world"}' | fx '.name' '`Hello, ${this}!`'

Use other JS functions to process the data.

echo `{"name": "world"}` | fx 'Object.keys'

Advanced Usage

Fx has a shortcut for the map function. Fox example .map(x => x.commit.message) can be written without leading dot and without x => parts.

curl https://api.github.com/repos/antonmedv/fx/commits | fx 'map(x.commit.message)'

Fx has a special syntax for the flatMap function. Fox example, .flatMap(x => x.labels.flatMap(x => x.name)) can be written in the next way.

curl https://api.github.com/repos/kubernetes/kubernetes/issues | fx '.[].labels[].name'

License

MIT