diff options
Diffstat (limited to 'lua/mason-core/installer/init.lua')
| -rw-r--r-- | lua/mason-core/installer/init.lua | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/lua/mason-core/installer/init.lua b/lua/mason-core/installer/init.lua index 9f150269..ee0e6397 100644 --- a/lua/mason-core/installer/init.lua +++ b/lua/mason-core/installer/init.lua @@ -64,13 +64,19 @@ function M.prepare_installer(context) try(Result.pcall(fs.async.mkdirp, package_build_prefix)) context.cwd:set(package_build_prefix) - return context.package.spec.install + if context.package:is_registry_spec() then + local registry_installer = require "mason-core.installer.registry" + return try(registry_installer.compile(context.handle.package.spec, context.opts)) + else + return context.package.spec.install + end end) end ----@async +---@generic T ---@param context InstallContext ----@param fn async fun(context: InstallContext) +---@param fn fun(context: InstallContext): T +---@return T function M.exec_in_context(context, fn) local thread = coroutine.create(function(...) -- We wrap the function to allow it to be a spy instance (in which case it's not actually a function, but a |
