diff --git a/src/packages.rkt b/src/packages.rkt index 015e1ee..09c0be8 100644 --- a/src/packages.rkt +++ b/src/packages.rkt @@ -11,7 +11,8 @@ replace-package! delete-package! refresh-packages! - next-fetch-deadline) + next-fetch-deadline + packages-jsexpr) (require json) (require racket/set) @@ -243,3 +244,6 @@ #:when (and (not (tombstone? pkg)) ((if include? values not) (@ref (@ pkg search-terms) tag-name)))) (values package-name pkg))))))) + +(define (packages-jsexpr) + (manager-rpc 'packages)) diff --git a/src/site.rkt b/src/site.rkt index 2077d2e..9931773 100644 --- a/src/site.rkt +++ b/src/site.rkt @@ -55,6 +55,7 @@ [("json" "search-completions") json-search-completions] [("json" "tag-search-completions") json-tag-search-completions] [("json" "formal-tags") json-formal-tags] + [("pkgs-all.json") pkgs-all-json] )) (define (on-continuation-expiry request) @@ -1111,3 +1112,8 @@ (response/output #:mime-type #"application/json" (lambda (response-port) (write-json (set->list (all-formal-tags)) response-port)))) + +(define (pkgs-all-json request) + (response/output #:mime-type #"application/json" + (lambda (response-port) + (write-json (packages-jsexpr) response-port))))