diff --git a/plugins/yarn/yarn.plugin.zsh b/plugins/yarn/yarn.plugin.zsh index 157044d71..f26aab17e 100644 --- a/plugins/yarn/yarn.plugin.zsh +++ b/plugins/yarn/yarn.plugin.zsh @@ -1,3 +1,7 @@ +# Yarn version checking +autoload -Uz is-at-least +yarn_version="$(yarn --version 2>/dev/null)" + if zstyle -T ':omz:plugins:yarn' global-path; then # Skip yarn call if default global bin dir exists [[ -d "$HOME/.yarn/bin" ]] && bindir="$HOME/.yarn/bin" || bindir="$(yarn global bin 2>/dev/null)" @@ -18,17 +22,11 @@ alias yb="yarn build" alias ycc="yarn cache clean" alias yd="yarn dev" alias yf="yarn format" -alias yga="yarn global add" -alias ygls="yarn global list" -alias ygrm="yarn global remove" -alias ygu="yarn global upgrade" alias yh="yarn help" alias yi="yarn init" alias yin="yarn install" alias yln="yarn lint" alias ylnf="yarn lint --fix" -alias yls="yarn list" -alias yout="yarn outdated" alias yp="yarn pack" alias yrm="yarn remove" alias yrun="yarn run" @@ -36,11 +34,29 @@ alias ys="yarn serve" alias yst="yarn start" alias yt="yarn test" alias ytc="yarn test --coverage" -alias yuc="yarn global upgrade && yarn cache clean" alias yui="yarn upgrade-interactive" -alias yuil="yarn upgrade-interactive --latest" +# --latest flag was removed in yarn berry so we execute the base command +is-at-least 2.0.0 "$yarn_version" \ + && alias yuil='yui' \ + || alias yuil='yarn upgrade-interactive --latest' +# The flag for installing with restrictive lockfile was changed in yarn berry +is-at-least 2.0.0 "$yarn_version" \ + && alias yii='yarn install --immutable' \ + || alias yii='yarn install --frozen-lockfile' +alias yifl="yii" alias yup="yarn upgrade" alias yv="yarn version" alias yw="yarn workspace" alias yws="yarn workspaces" alias yy="yarn why" + +# These commands should only be registered if Yarn v1 is used +if [ ! $(is-at-least 2.0.0 "$yarn_version") ]; then + alias yga="yarn global add" + alias ygls="yarn global list" + alias ygrm="yarn global remove" + alias ygu="yarn global upgrade" + alias yls="yarn list" + alias yout="yarn outdated" + alias yuca="yarn global upgrade && yarn cache clean" +fi