aboutsummaryrefslogtreecommitdiffstats
path: root/lua/mason-core/package/AbstractPackage.lua
diff options
context:
space:
mode:
Diffstat (limited to 'lua/mason-core/package/AbstractPackage.lua')
-rw-r--r--lua/mason-core/package/AbstractPackage.lua14
1 files changed, 13 insertions, 1 deletions
diff --git a/lua/mason-core/package/AbstractPackage.lua b/lua/mason-core/package/AbstractPackage.lua
index b490fc87..d0fde00d 100644
--- a/lua/mason-core/package/AbstractPackage.lua
+++ b/lua/mason-core/package/AbstractPackage.lua
@@ -16,6 +16,7 @@ local Semaphore = require("mason-core.async.control").Semaphore
---@class AbstractPackage : EventEmitter
---@field name string
---@field spec RegistryPackageSpec
+---@field registry RegistrySource
---@field private install_handle InstallHandle? The currently associated installation handle.
---@field private uninstall_handle InstallHandle? The currently associated uninstallation handle.
local AbstractPackage = {}
@@ -33,13 +34,24 @@ AbstractPackage.DEFAULT_INSTALL_OPTS = {
}
---@param spec RegistryPackageSpec
-function AbstractPackage:new(spec)
+---@param reg RegistrySource
+function AbstractPackage:new(spec, reg)
local instance = EventEmitter.new(self)
instance.name = spec.name -- for convenient access
instance.spec = spec
+ instance.registry = reg
return instance
end
+---@param spec RegistryPackageSpec
+---@param reg RegistrySource
+function AbstractPackage:update(spec, reg)
+ self.name = spec.name -- shouldn't be necessary but might as well
+ self.spec = spec
+ self.registry = reg
+ return self
+end
+
---@return boolean
function AbstractPackage:is_installing()
return self:get_install_handle()