branch: elpa/hyperdrive commit ad0dba6928280c1668825dd8288d9b2ef5ad55af Author: Joseph Turner <jos...@ushin.org> Commit: Joseph Turner <jos...@ushin.org>
Fix: (he/api) Handle synchronous case --- hyperdrive-lib.el | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/hyperdrive-lib.el b/hyperdrive-lib.el index 7bbb3daecf..ff8f4bf2bb 100644 --- a/hyperdrive-lib.el +++ b/hyperdrive-lib.el @@ -218,12 +218,14 @@ REST is passed to `h/api', which see. (cl-assert (null (plist-get rest :as))) (plist-put rest :as 'response) - (pcase-let* (((map :then) rest) - (then* (lambda (response) - (he//api-then entry response) - (funcall then response)))) - (plist-put rest :then then*) - (apply #'h/api method (he/url entry) rest))) + (pcase-let* (((map :then) rest)) + (when then + (plist-put rest :then (lambda (response) + (he//api-then entry response) + (funcall then response)))) + (let ((response (apply #'h/api method (he/url entry) rest))) + (unless then (funcall 'he//api-then entry response)) + response))) (defun he//api-then (entry response) "Update ENTRY's metadata according to RESPONSE.