Function: ghub--graphql-narrow-query
ghub--graphql-narrow-query is a byte-compiled function defined in
ghub-graphql.el.
Signature
(ghub--graphql-narrow-query QUERY LINEAGE &optional CURSOR)
Source Code
;; Defined in ~/.emacs.d/elpa/ghub-20260401.1239/ghub-graphql.el
(defun ghub--graphql-narrow-query (query lineage &optional cursor)
(if (consp (car lineage))
(let* ((child (cddr query))
(alist (append (cadr query) ()))
(single (cdr (assq :singular alist))))
`(,(car single)
,(vector (list (cadr single) (cdr (car lineage))))
,@(if (cdr lineage)
(ghub--graphql-narrow-query child (cdr lineage) cursor)
child)))
(let* ((child (or (assq (car lineage) (cdr query))
;; Alias
(cl-find-if (lambda (c)
(eq (car-safe (car-safe c))
(car lineage)))
query)
;; Edges
(cl-find-if (lambda (c)
(and (listp c)
(vectorp (cadr c))
(eq (cadr (assq :singular
(append (cadr c) ())))
(car lineage))))
(cdr query))
(error "BUG: Failed to narrow query")))
(object (car query))
(args (and (vectorp (cadr query))
(cadr query))))
`(,object
,@(and args (list args))
,(cond ((cdr lineage)
(ghub--graphql-narrow-query child (cdr lineage) cursor))
(cursor
`(,(car child)
,(vconcat `((after ,cursor))
(cadr child))
,@(cddr child)))
(t
child))))))