1.2.13 • Published 3 years ago

jaycue v1.2.13

Weekly downloads
197
License
MIT
Repository
github
Last release
3 years ago

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"
  }
}
filteroutput
.{ "value": 42, "text": "less interesting data","name": { "first": "Brian" "last": "Olore" } } (object)
.value42 (number)
.textless interesting data (string)
.["text"]less interesting data (string)
.name"name": { "first": "Brian" "last": "Olore" } (object)
.name.firstBrian (string)
.missingundefined
.missing?null
.["missing"]?null

Array Filters

["a","b","c","d","e"];
filteroutput
.[]"a","b","c","d","e" (not json)
.[0]a
.[-2]d

Array Slicing Filters

filteroutput
.[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}
]
filteroutput
.[] \| select(.id == "second"){"id": "second", "val": 2}
.[] \| select(.id == "second") \| .val2 (number)
.[] \| select(.id == "second") .val2 (number)
.[] \| select(.id != "second") .val1 (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
1.2.13

3 years ago

1.2.12

3 years ago

1.2.11

3 years ago

1.2.10

3 years ago

1.2.9

4 years ago

1.2.8

4 years ago

1.2.7

4 years ago

1.2.6

4 years ago

1.2.5

4 years ago

1.2.4

4 years ago

1.2.3

4 years ago

1.2.1

4 years ago

1.2.0

4 years ago

1.0.0

4 years ago