Implement GraphQL app
This commit is contained in:
parent
7f288bed92
commit
02ad388f99
@ -2401,3 +2401,62 @@ Emacs has excellent built-in SQL support.
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(leader-def-key "sg" #'sql-postgres)
|
||||
#+END_SRC
|
||||
* GraphQL
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(use-package graphql-mode
|
||||
:quelpa ((graphql-mode :fetcher github
|
||||
:repo "davazp/graphql-mode"))
|
||||
:config
|
||||
(defvar graphql-env-alist '()
|
||||
"An alist defining available GraphQL servers
|
||||
|
||||
The key is any symbol and the value is a cons pair of
|
||||
(graphql-url . graphql-auth-token)")
|
||||
(setq graphql-variables-file "~/variables.graphql")
|
||||
(defun graphql-set-env (env)
|
||||
(interactive
|
||||
(list
|
||||
(intern
|
||||
(ido-completing-read+
|
||||
"GraphQL env: "
|
||||
(mapcar #'car graphql-env-alist)))))
|
||||
(let* ((gql-params (alist-get env graphql-env-alist))
|
||||
(url (car gql-params))
|
||||
(auth-token (cdr gql-params)))
|
||||
(setq graphql-url url
|
||||
graphql-extra-headers `(("Authorization" . ,auth-token)))))
|
||||
(defun graphql (env)
|
||||
"Opens a graphql-mode buffer in the specified environment"
|
||||
(interactive
|
||||
(list
|
||||
(intern
|
||||
(ido-completing-read+
|
||||
"GraphQL env: "
|
||||
(mapcar #'car graphql-env-alist)))))
|
||||
(graphql-set-env env)
|
||||
(let ((graphql-buf (get-buffer-create "*graphql-query*")))
|
||||
(set-buffer graphql-buf)
|
||||
(when (string= "" (buffer-substring (point-min) (point-max)))
|
||||
(insert "{\n \n}")
|
||||
(goto-char 5))
|
||||
(graphql-mode)
|
||||
(switch-to-buffer graphql-buf)))
|
||||
(defun find-graphql-variables-file ()
|
||||
(interactive)
|
||||
(find-file graphql-variables-file))
|
||||
(jdormit/define-prefix "q" "graphql")
|
||||
(leader-def-key "qe" #'graphql-set-env)
|
||||
(leader-def-key "qf" #'find-graphql-variables-file)
|
||||
(leader-def-key "aq" #'graphql)
|
||||
(general-def graphql-mode-map "C-c C-e" #'graphql-set-env)
|
||||
(general-def graphql-mode-map "C-c C-v" #'find-graphql-variables-file))
|
||||
#+END_SRC
|
||||
|
||||
GraphQL environments:
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(setq graphql-env-alist
|
||||
`((dev . ("https://api-dev.lola.co/api/graphql" .
|
||||
,(password-store-get "lola-graphql-dev-token")))
|
||||
(local . ("http://localhost:7200/api/graphql" .
|
||||
,(password-store-get "lola-graphql-local-token")))))
|
||||
#+END_SRC
|
||||
|
Loading…
Reference in New Issue
Block a user