This project was an experiment and should be used under any circumstances
Compiles JSONiq queries to Javascript.
$ cat query.jq
for $x in (4,1,2,3)
for $y in (4,1,2,3)
order by $x ascending, $y descending
return { x: $x, y: $y }
$ jsoniq compile query.jq
$ node query.js
{ x: 1, y: 4 }
{ x: 1, y: 3 }
{ x: 1, y: 2 }
{ x: 1, y: 1 }
{ x: 2, y: 4 }
{ x: 2, y: 3 }
...
$ npm install jsoniq -g
Compiled queries need to access the runtime library therefore the jsoniq package needs to be installed as well.
$ npm install jsoniq --save
$ jsoniq compile test.jq
$ node test.js
To compile a query to JavaScript:
$ cat query.jq
for $x in (4,1,2,3)
for $y in (4,1,2,3)
order by $x ascending, $y descending
return { x: $x, y: $y }
$ jsoniq compile query.jq
$ node query.js
{ x: 1, y: 4 }
{ x: 1, y: 3 }
{ x: 1, y: 2 }
{ x: 1, y: 1 }
{ x: 2, y: 4 }
{ x: 2, y: 3 }
...
Or to run the query directly
$ jsoniq run query.jq
To print the query AST:
$ jsoniq ast query.jq
To print the query plan:
$ jsoniq plan query.jq