summaryrefslogtreecommitdiff
path: root/funcs
diff options
context:
space:
mode:
authorAndreas Hochsteger <andreas.hochsteger@gmail.com>2022-12-29 23:01:05 +0100
committerGitHub <noreply@github.com>2022-12-29 22:01:05 +0000
commite045af5d9c9106594bc2a5f609b14dbc603f7253 (patch)
tree7591781fd92cafd19bd5483b8e1c2fedae7ebc85 /funcs
parentf8a636898f316ce0d4a9a12335e9633c218f9e8a (diff)
Add coll.JQ using gojq library (#1585)
* feat: add coll.JQ using gojq library * fix: jq function naming (gojq -> jq) * test: add tests (take from jsonpath_test.go) * chore: add TODO for nil values (are they allowed?) * refactor: use fmt.Errorf instead of errors.Wrapf Co-authored-by: Dave Henderson <dhenderson@gmail.com> * fix: wrong alias for coll.JQ Co-authored-by: Dave Henderson <dhenderson@gmail.com> * docs: add links to JQ Co-authored-by: Dave Henderson <dhenderson@gmail.com> * test: add assertions after json marshal/unmarshal Co-authored-by: Dave Henderson <dhenderson@gmail.com> * refactor: use fmt.Errorf instead of errors.Wrapf Co-authored-by: Dave Henderson <dhenderson@gmail.com> * fix: test syntax and null handling * docs: improve documentation * docs: add blank line * Support cancellation Signed-off-by: Dave Henderson <dhenderson@gmail.com> * Support (almost) all types, not just map[string]interface{} and []interface{} Signed-off-by: Dave Henderson <dhenderson@gmail.com> * add an integration test for coll.JQ Signed-off-by: Dave Henderson <dhenderson@gmail.com> Signed-off-by: Dave Henderson <dhenderson@gmail.com> Co-authored-by: Andreas Hochsteger <andreas.hochsteger@oeamtc.at> Co-authored-by: Dave Henderson <dhenderson@gmail.com>
Diffstat (limited to 'funcs')
-rw-r--r--funcs/coll.go6
1 files changed, 6 insertions, 0 deletions
diff --git a/funcs/coll.go b/funcs/coll.go
index 4a3ca5ab..97bf911a 100644
--- a/funcs/coll.go
+++ b/funcs/coll.go
@@ -47,6 +47,7 @@ func CreateCollFuncs(ctx context.Context) map[string]interface{} {
f["merge"] = ns.Merge
f["sort"] = ns.Sort
f["jsonpath"] = ns.JSONPath
+ f["jq"] = ns.JQ
f["flatten"] = ns.Flatten
return f
}
@@ -142,6 +143,11 @@ func (CollFuncs) JSONPath(p string, in interface{}) (interface{}, error) {
return coll.JSONPath(p, in)
}
+// JQ -
+func (f *CollFuncs) JQ(jqExpr string, in interface{}) (interface{}, error) {
+ return coll.JQ(f.ctx, jqExpr, in)
+}
+
// Flatten -
func (CollFuncs) Flatten(args ...interface{}) ([]interface{}, error) {
if len(args) == 0 || len(args) > 2 {