diff options
| author | William Boman <william@redwill.se> | 2025-05-06 02:57:26 +0200 |
|---|---|---|
| committer | William Boman <william@redwill.se> | 2025-05-06 02:57:26 +0200 |
| commit | f74983e782b7394f5737df99f8823e196a23291d (patch) | |
| tree | 15ee15a22ad4e8dff13c050a361c99f08d831212 /lua/mason-core/package/AbstractPackage.lua | |
| parent | refactor(registry): change lua registries to not instantiate Package themselves (diff) | |
| download | mason-f74983e782b7394f5737df99f8823e196a23291d.tar mason-f74983e782b7394f5737df99f8823e196a23291d.tar.gz mason-f74983e782b7394f5737df99f8823e196a23291d.tar.bz2 mason-f74983e782b7394f5737df99f8823e196a23291d.tar.lz mason-f74983e782b7394f5737df99f8823e196a23291d.tar.xz mason-f74983e782b7394f5737df99f8823e196a23291d.tar.zst mason-f74983e782b7394f5737df99f8823e196a23291d.zip | |
feat: associate package instances with registry source and record it in receipt
Diffstat (limited to 'lua/mason-core/package/AbstractPackage.lua')
| -rw-r--r-- | lua/mason-core/package/AbstractPackage.lua | 14 |
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() |
