You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
fx/npm
Anton Medvedev 0833d11919
Update index.js
1 year ago
..
README.md Update index.js 1 year ago
index.js Update index.js 1 year ago
package.json Add package.json 1 year ago
test.js Add sort & uniq test 1 year ago

README.md

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, this.map(x => x.commit.message) can be rewritten without leading dot and without x => x parts.

curl https://api.github.com/repos/antonmedv/fx/commits | fx 'map(.commit.message)'
echo '[{"name": "world"}]' | fx 'map(`Hello, ${x.name}!`)'

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

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

License

MIT