jqts
v0.0.8
Published
A TypeScript implementation of `jq` query language for JSON
Downloads
604
Readme
jqts
A TypeScript implementation of jq
query language for JSON
Install
npm install jqts
Usage
For TypeScript:
import jq from 'jqts';
const pattern = jq.compile('[.[].x]');
pattern.evaluate([{ x: 1, x: 2 }]); // [1, 2]
For JavaScript:
const jq = require('jqts').default;
const pattern = jq.compile('[.[].x]');
pattern.evaluate([{ x: 1, x: 2 }]); // [1, 2]
Supported Filters
| Filter | Notation | Status |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------- | ------------------ |
| Identity | .
| :heavy_check_mark: |
| Object Identifier-Index | .foo
.foo.bar
| :heavy_check_mark: |
| Optional Object Identifier-Index | .foo?
| :heavy_check_mark: |
| Generic Object Index | .[<string>]
| :heavy_check_mark: |
| Array Index | .[2]
| :heavy_check_mark: |
| Array/String Slice | .[10:15]
| :heavy_check_mark: |
| Array/Object Value Iterator | .[]
.[]?
| :heavy_check_mark: |
| Comma | .foo, .bar
| :heavy_check_mark: |
| Pipe | .[] \| .foo
| :heavy_check_mark: |
| Parenthesis | (. + 2) * 5
| :heavy_check_mark: |
| JSON datatypes | | :heavy_check_mark: |
| Array Construction | [.foo, .bar]
| :heavy_check_mark: |
| Object Construction | {foo:.bar}
{baz}
| :heavy_check_mark: |
| Recursive Descent | ..
| |
| Addition | +
| :heavy_check_mark: |
| Subtraction | -
| :heavy_check_mark: |
| Multiplication,Division,Modulo | *
/
%
| :heavy_check_mark: |
| length
| length
| :heavy_check_mark: |
| utf8bytelength
| utf8bytelength
| :heavy_check_mark: |
| keys
, keys_unsorted
| keys
keys_unsorted
| :heavy_check_mark: |
| has(key)
| has("foo")
| :heavy_check_mark: |
| in
| in([0, 1])
| :heavy_check_mark: |
| map
| map
| :heavy_check_mark: |
| map_values
| map_value
| |
| path(path_expression)
| | |
| del(path_expression)
| | |
| getpath(PATHS)
| | |
| setpath(PATHS; VALUE)
| | |
| delpaths(PATHS)
| | |
| to_entries, from_entries
| | :heavy_check_mark: |
| with_entries
| | |
| select(boolean_expression)
| | :heavy_check_mark: |
| arrays
, objects
, iterables
, booleans
, numbers
, normals
, finites
, strings
, nulls
, values
, scalars
| | :heavy_check_mark: |
| empty
| | :heavy_check_mark: |
| error(message)
| | :heavy_check_mark: |
| halt
| | |
| halt_error
, halt_error(exit_code)
| | |
| $__loc__
|
| paths
, paths(node_filter)
, leaf_paths
| | |
| add
| | :heavy_check_mark: |
| any
| | :heavy_check_mark: |
| any(condition)
, any(generator; condition)
| | |
| all
| | :heavy_check_mark: |
| all(condition)
, all(generator; condition)
| | |
| flatten
, flatten(depth)
| | :heavy_check_mark: |
| range(upto)
, range(from;upto)
, range(from;upto;by)
| | :heavy_check_mark: |
| floor
| | :heavy_check_mark: |
| sqrt
| | :heavy_check_mark: |
| tonumber
| | :heavy_check_mark: |
| tostring
| | :heavy_check_mark: |
| type
| | :heavy_check_mark: |
| infinite, nan, isinfinite, isnan, isfinite, isnormal
| | :heavy_check_mark: |
| sort, sort_by(path_expression)
| | :heavy_check_mark: |
| group_by(path_expression)
| | :heavy_check_mark: |
| min
, max
, min_by(path_exp)
, max_by(path_exp)
| | :heavy_check_mark: |
| unique, unique_by(path_exp)
| | :heavy_check_mark: |
| reverse
| | :heavy_check_mark: |
| contains(element)
| | :heavy_check_mark: |
| indices(s)
| | :heavy_check_mark: |
| index(s), rindex(s)
| | :heavy_check_mark: |
| inside
| | :heavy_check_mark: |
| startswith(str)
| | :heavy_check_mark: |
| endswith(str)
| | :heavy_check_mark: |
| combinations, combinations(n)
| | :heavy_check_mark: |
| ltrimstr(str)
| | |
| rtrimstr(str)
| | |
| explode
| | |
| implode
| | |
| split(str)
| | |
| join(str)
| | |
| ascii_downcase
, ascii_upcase
| | |
| while(cond; update)
| | |
| until(cond; next)
| | |
| recurse(f)
, recurse
, recurse(f; condition)
, recurse_down
| | |
| walk(f)
| | |
| $ENV
, env
| | |
| transpose
| | |
| bsearch(x)
| | |
| String interpolation - \(foo)
| | |
| Convert to/from JSON | | |
| Format strings and escaping | | |
| Dates | | |
| SQL-Style Operators | | |
| builtins | | |
| ==
, !=
| | |
| if-then-else | | |
| >
, >=
, <=
, <
| | |
| and/or/not | and
, or
, not
| |
| Alternative operator | //
| :heavy_check_mark: |
| try-catch | | |
| Breaking out of control structures | | |
| Error Suppression / Optional Operator | ?
| |
| Regular expressions (PCRE) | | |
| Variable / Symbolic Binding Operator | | |
| Destructuring Alternative Operator | | |
| Defining Functions | | |
| Scoping | | |
| Reduce | | |
| Recursion | | |
| Generators and Iterators | | |
| Math | | |
| I/O | | |
| Streaming | | |
| Assignment | | |
| Modules | | |
| Colors | | |
License
MIT