0.0.8 • Published 3 years ago

jqts v0.0.8

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

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

FilterNotationStatus
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:
lengthlength:heavy_check_mark:
utf8bytelengthutf8bytelength:heavy_check_mark:
keys, keys_unsortedkeys keys_unsorted:heavy_check_mark:
has(key)has("foo"):heavy_check_mark:
inin([0, 1]):heavy_check_mark:
mapmap:heavy_check_mark:
map_valuesmap_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/notand, 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

0.0.8

3 years ago

0.0.7

3 years ago

0.0.6

3 years ago

0.0.5

4 years ago

0.0.4

4 years ago

0.0.3

4 years ago

0.0.2

4 years ago

0.0.1

4 years ago