mirror of
https://github.com/antonmedv/fx
synced 2024-11-19 03:25:28 +00:00
1.4 KiB
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'