From 738d649c6f9f15ca0905cd4a6c0c9156085b3519 Mon Sep 17 00:00:00 2001 From: Herrtian <70463940+Herrtian@users.noreply.github.com> Date: Thu, 28 May 2026 10:55:48 +0200 Subject: [PATCH] feat(download): add asdf install method Signed-off-by: Herrtian <70463940+Herrtian@users.noreply.github.com> --- apps/site/snippets/en/download/asdf.bash | 11 +++++++++++ apps/site/types/release.ts | 3 ++- apps/site/util/download/constants.json | 9 +++++++++ apps/site/util/download/index.tsx | 10 +++++++++- packages/i18n/src/locales/en.json | 3 ++- 5 files changed, 33 insertions(+), 3 deletions(-) create mode 100644 apps/site/snippets/en/download/asdf.bash diff --git a/apps/site/snippets/en/download/asdf.bash b/apps/site/snippets/en/download/asdf.bash new file mode 100644 index 0000000000000..d4dbd8fd85fc8 --- /dev/null +++ b/apps/site/snippets/en/download/asdf.bash @@ -0,0 +1,11 @@ +# asdf has specific installation instructions for each operating system. +# See https://asdf-vm.com/guide/getting-started.html for setup instructions. + +# Install the Node.js plugin: +asdf plugin add nodejs https://github.com/asdf-vm/asdf-nodejs.git + +# Download and install Node.js: +asdf install nodejs ${props.release.version} + +# Set the global Node.js version: +asdf set -u nodejs ${props.release.version} diff --git a/apps/site/types/release.ts b/apps/site/types/release.ts index baa01aa40b38d..9ffc705f73490 100644 --- a/apps/site/types/release.ts +++ b/apps/site/types/release.ts @@ -8,7 +8,8 @@ export type InstallationMethod = | 'BREW' | 'DOCKER' | 'CHOCO' - | 'N'; + | 'N' + | 'ASDF'; export type PackageManager = 'NPM' | 'YARN' | 'PNPM'; // Items with a pipe/default value mean that they are auto inferred diff --git a/apps/site/util/download/constants.json b/apps/site/util/download/constants.json index d5ccf208ccf5b..1a349025d003c 100644 --- a/apps/site/util/download/constants.json +++ b/apps/site/util/download/constants.json @@ -187,6 +187,15 @@ }, "url": "https://github.com/tj/n", "info": "layouts.download.codeBox.platformInfo.n" + }, + { + "id": "ASDF", + "name": "asdf", + "compatibility": { + "os": ["MAC", "LINUX"] + }, + "url": "https://asdf-vm.com/guide/getting-started.html", + "info": "layouts.download.codeBox.platformInfo.asdf" } ], "packageManagers": [ diff --git a/apps/site/util/download/index.tsx b/apps/site/util/download/index.tsx index 78ad149d1fb15..6f1fc7585d46a 100644 --- a/apps/site/util/download/index.tsx +++ b/apps/site/util/download/index.tsx @@ -78,9 +78,17 @@ export const parseCompat = < */ const createIcon = ( IconModule: Record, - iconName: string + iconName?: string ) => { + if (!iconName) { + return undefined; + } + const IconComponent = IconModule[iconName]; + if (!IconComponent) { + return undefined; + } + return ; }; diff --git a/packages/i18n/src/locales/en.json b/packages/i18n/src/locales/en.json index d177c91c3a4ef..833eaf8518cd5 100644 --- a/packages/i18n/src/locales/en.json +++ b/packages/i18n/src/locales/en.json @@ -299,7 +299,8 @@ "choco": "Chocolatey is a package manager for Windows.", "docker": "Docker is a containerization platform.", "n": "\"n\" is a cross-platform Node.js version manager.", - "volta": "\"Volta\" is a cross-platform Node.js version manager." + "volta": "\"Volta\" is a cross-platform Node.js version manager.", + "asdf": "\"asdf\" is a cross-platform version manager that supports multiple languages." } } },