diff options
Diffstat (limited to 'lua/mason-core/installer/registry/init.lua')
| -rw-r--r-- | lua/mason-core/installer/registry/init.lua | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/lua/mason-core/installer/registry/init.lua b/lua/mason-core/installer/registry/init.lua index f5655572..27a7da2a 100644 --- a/lua/mason-core/installer/registry/init.lua +++ b/lua/mason-core/installer/registry/init.lua @@ -42,6 +42,7 @@ end ---@class InstallerProvider ---@field parse fun(source: RegistryPackageSource, purl: Purl, opts: PackageInstallOpts): Result ---@field install async fun(ctx: InstallContext, source: ParsedPackageSource, purl: Purl): Result +---@field get_versions async fun(purl: Purl, source: RegistryPackageSource): Result # Result<string[]> ---@class ParsedPackageSource @@ -204,4 +205,16 @@ function M.compile(spec, opts) end) end +---@async +---@param spec RegistryPackageSpec +function M.get_versions(spec) + return Result.try(function(try) + ---@type Purl + local purl = try(Purl.parse(spec.source.id)) + ---@type InstallerProvider + local provider = try(get_provider(purl)) + return provider.get_versions(purl, spec.source) + end) +end + return M |
