jaycue
v1.2.13
Published
jaycue mimics the best parts [jq](https://stedolan.github.io/jq/) in pure JavaScript.
Readme
jaycue is my little side project that mimics the best parts jq in pure JavaScript. I wrote a blog post about it on dev.to
I am TDD'ing this to get some practice, using the jq documentation, and hopefully make something useful. Please see below for some similar, more mature, great projects built around jq.
Install
$ npm install jaycueUsage
const jq = require('jaycue');
console.log(jq({foo: 123}, '.foo'));
123Supported Filters
Basic Filters
{
"value": 42,
"text": "less interesting data",
"name": {
"first": "Brian"
"last": "Olore"
}
}filter | output
--------------- | ------
. | { "value": 42, "text": "less interesting data","name": { "first": "Brian" "last": "Olore" } } (object)
.value | 42 (number)
.text | less interesting data (string)
.["text"] | less interesting data (string)
.name | "name": { "first": "Brian" "last": "Olore" } (object)
.name.first | Brian (string)
.missing | undefined
.missing? | null
.["missing"]? | null
Array Filters
["a","b","c","d","e"];filter | output
------ | ------
.[] | "a","b","c","d","e" (not json)
.[0] | a
.[-2] | d
Array Slicing Filters
filter | output
-------- | ------
.[2:4] | ["c", "d"]
.[:3] | ["a", "b", "c"]
.[:-3] | ["a", "b"]
.[-2:] | ["d", "e"]
.[2:] | ["c", "d", "e"]
Select Function
[
{"id": "first", "val": 1},
{"id": "second", "val": 2}
]filter | output
----------------------------------- | -------------------
.[] \| select(.id == "second") | {"id": "second", "val": 2}
.[] \| select(.id == "second") \| .val | 2 (number)
.[] \| select(.id == "second") .val | 2 (number)
.[] \| select(.id != "second") .val | 1 (number)
Testing
~~Must have jq installed to run tests~~
jq is now supplied by node-jq
As previously mentioned, all code has been test-driven. The test-helper provides a way to call the actual jq, making it easy to compare results.
Running tests
npm testNotes
Read the jq Language Description
Check out this project which is a JavaScript wrapper around jq: https://github.com/sanack/node-jq. Here are some more cool jq projects: https://github.com/fiatjaf/awesome-jq
Thanks
- Logo by Joseph Olore
