diff options
Diffstat (limited to 'lua/mason-core')
| -rw-r--r-- | lua/mason-core/installer/InstallHandle.lua | 2 | ||||
| -rw-r--r-- | lua/mason-core/installer/context/init.lua | 2 | ||||
| -rw-r--r-- | lua/mason-core/package/AbstractPackage.lua | 10 | ||||
| -rw-r--r-- | lua/mason-core/receipt.lua | 12 |
4 files changed, 16 insertions, 10 deletions
diff --git a/lua/mason-core/installer/InstallHandle.lua b/lua/mason-core/installer/InstallHandle.lua index d8b8941f..3846659e 100644 --- a/lua/mason-core/installer/InstallHandle.lua +++ b/lua/mason-core/installer/InstallHandle.lua @@ -43,7 +43,7 @@ function InstallHandleSpawnHandle:__tostring() end ---@class InstallHandle : EventEmitter ----@field package AbstractPackage +---@field public package AbstractPackage ---@field state InstallHandleState ---@field stdio_sink BufferedSink ---@field is_terminated boolean diff --git a/lua/mason-core/installer/context/init.lua b/lua/mason-core/installer/context/init.lua index 9af95f80..ae96f986 100644 --- a/lua/mason-core/installer/context/init.lua +++ b/lua/mason-core/installer/context/init.lua @@ -17,7 +17,7 @@ local receipt = require "mason-core.receipt" ---@field location InstallLocation ---@field spawn InstallContextSpawn ---@field handle InstallHandle ----@field package AbstractPackage +---@field public package AbstractPackage ---@field cwd InstallContextCwd ---@field opts PackageInstallOpts ---@field stdio_sink StdioSink diff --git a/lua/mason-core/package/AbstractPackage.lua b/lua/mason-core/package/AbstractPackage.lua index d0fde00d..5678f4dd 100644 --- a/lua/mason-core/package/AbstractPackage.lua +++ b/lua/mason-core/package/AbstractPackage.lua @@ -6,7 +6,6 @@ local Result = require "mason-core.result" local _ = require "mason-core.functional" local fs = require "mason-core.fs" local log = require "mason-core.log" -local path = require "mason-core.path" local settings = require "mason.settings" local Semaphore = require("mason-core.async.control").Semaphore @@ -166,15 +165,10 @@ end ---@return string? function AbstractPackage:get_installed_version(location) return self:get_receipt(location) - :and_then( + :map( ---@param receipt InstallReceipt function(receipt) - local source = receipt:get_source() - if source.id then - return Purl.parse(source.id):map(_.prop "version"):ok() - else - return Optional.empty() - end + return receipt:get_installed_package_version() end ) :or_else(nil) diff --git a/lua/mason-core/receipt.lua b/lua/mason-core/receipt.lua index 42a7e882..bdf96254 100644 --- a/lua/mason-core/receipt.lua +++ b/lua/mason-core/receipt.lua @@ -1,3 +1,7 @@ +local Optional = require "mason-core.optional" +local Purl = require "mason-core.purl" +local _ = require "mason-core.functional" + local M = {} ---@alias InstallReceiptSchemaVersion @@ -41,6 +45,14 @@ function InstallReceipt:get_name() return self.name end +---@return string? +function InstallReceipt:get_installed_package_version() + local source = self:get_source() + if source.id then + return Purl.parse(source.id):map(_.prop "version"):get_or_nil() + end +end + function InstallReceipt:get_schema_version() return self.schema_version end |
