8000 GitHub - olore/jaycue at workflow-stuff
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

olore/jaycue

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

76 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


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 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- 696A 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

About

My little side project that mimics the best parts jq https://stedolan.github.io/jq/

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •  
0