Next Phenomenal Microbrewery

    jaycue

    1.2.13 • Public • Published


    jaycue

    npm version npm dependents Downloads run on repl.it

    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 jaycue

    Usage

    const jq = require('jaycue');
    
    console.log(jq({foo: 123}, '.foo'));
    123

    Supported 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 test

    Notes

    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

    Install

    npm i jaycue

    DownloadsWeekly Downloads

    72

    Version

    1.2.13

    License

    MIT

    Unpacked Size

    153 kB

    Total Files

    21

    Last publish

    Collaborators

    • olore