aboutsummaryrefslogtreecommitdiffstats
path: root/lua
diff options
context:
space:
mode:
authorAmit Tamari <15573913+amittamari@users.noreply.github.com>2026-04-21 16:26:46 +0300
committerGitHub <noreply@github.com>2026-04-21 15:26:46 +0200
commit8fdc4b0a563768c04476042b9cc765c149560bbe (patch)
tree1158658174b844f479bd9dea39dd4959b75b01d7 /lua
parentfix: actually emit the receipt in uninstall event payloads (#2071) (diff)
downloadmason-8fdc4b0a563768c04476042b9cc765c149560bbe.tar
mason-8fdc4b0a563768c04476042b9cc765c149560bbe.tar.gz
mason-8fdc4b0a563768c04476042b9cc765c149560bbe.tar.bz2
mason-8fdc4b0a563768c04476042b9cc765c149560bbe.tar.lz
mason-8fdc4b0a563768c04476042b9cc765c149560bbe.tar.xz
mason-8fdc4b0a563768c04476042b9cc765c149560bbe.tar.zst
mason-8fdc4b0a563768c04476042b9cc765c149560bbe.zip
feat(npm): add `install_args` setting (#1581)
Co-authored-by: William Boman <william@redwill.se>
Diffstat (limited to 'lua')
-rw-r--r--lua/mason-core/installer/compiler/compilers/npm.lua5
-rw-r--r--lua/mason-core/installer/managers/npm.lua3
-rw-r--r--lua/mason/settings.lua9
3 files changed, 16 insertions, 1 deletions
diff --git a/lua/mason-core/installer/compiler/compilers/npm.lua b/lua/mason-core/installer/compiler/compilers/npm.lua
index e8489fe8..cdf6a279 100644
--- a/lua/mason-core/installer/compiler/compilers/npm.lua
+++ b/lua/mason-core/installer/compiler/compilers/npm.lua
@@ -1,6 +1,7 @@
local Result = require "mason-core.result"
local _ = require "mason-core.functional"
local providers = require "mason-core.providers"
+local settings = require "mason.settings"
---@param purl Purl
local function purl_to_npm(purl)
@@ -24,6 +25,9 @@ function M.parse(source, purl)
package = purl_to_npm(purl),
version = purl.version,
extra_packages = source.extra_packages,
+ npm = {
+ extra_args = settings.current.npm.install_args,
+ },
}
return Result.success(parsed_source)
@@ -39,6 +43,7 @@ function M.install(ctx, source)
try(npm.init())
try(npm.install(source.package, source.version, {
extra_packages = source.extra_packages,
+ install_extra_args = source.npm.extra_args,
}))
end)
end
diff --git a/lua/mason-core/installer/managers/npm.lua b/lua/mason-core/installer/managers/npm.lua
index d31fe768..93af3a85 100644
--- a/lua/mason-core/installer/managers/npm.lua
+++ b/lua/mason-core/installer/managers/npm.lua
@@ -57,7 +57,7 @@ end
---@async
---@param pkg string
---@param version string
----@param opts? { extra_packages?: string[] }
+---@param opts? { extra_packages?: string[], install_extra_args?: string[] }
function M.install(pkg, version, opts)
opts = opts or {}
log.fmt_debug("npm: install %s %s %s", pkg, version, opts)
@@ -67,6 +67,7 @@ function M.install(pkg, version, opts)
"install",
("%s@%s"):format(pkg, version),
opts.extra_packages or vim.NIL,
+ opts.install_extra_args or vim.NIL,
}
end
diff --git a/lua/mason/settings.lua b/lua/mason/settings.lua
index ebff1e0b..e70d90a4 100644
--- a/lua/mason/settings.lua
+++ b/lua/mason/settings.lua
@@ -68,6 +68,15 @@ local DEFAULT_SETTINGS = {
install_args = {},
},
+ npm = {
+ ---@since 2.3.0
+ -- These args will be added to `npm install` calls. Note that setting extra args might impact intended behavior
+ -- and is not recommended.
+ --
+ -- Example: { "--registry", "https://registry.npmjs.org/" }
+ install_args = {},
+ },
+
ui = {
---@since 1.0.0
-- Whether to automatically check for new versions when opening the :Mason window.