[O] Optimize npm query
Closes https://github.com/hykilpikonna/hyfetch/issues/246
This commit is contained in:
parent
bd9c0b30cf
commit
be8f75df01
1 changed files with 20 additions and 2 deletions
22
neofetch
22
neofetch
|
@ -2069,10 +2069,28 @@ get_packages() {
|
||||||
# OS-independent package managers.
|
# OS-independent package managers.
|
||||||
has pipx && tot pipx list --short
|
has pipx && tot pipx list --short
|
||||||
has cargo && _cargopkgs="$(cargo install --list | grep -v '^ ')" && tot echo "$_cargopkgs"
|
has cargo && _cargopkgs="$(cargo install --list | grep -v '^ ')" && tot echo "$_cargopkgs"
|
||||||
npm-list() { npm list -g --depth=0 | grep -v -E '.*(\(none\)|npm@).*'; }
|
|
||||||
has npm && pkgs_h=1 tot npm-list
|
|
||||||
has am && pac "$(am -f --less)"
|
has am && pac "$(am -f --less)"
|
||||||
|
|
||||||
|
# Special case for npm: If has npm, we should list folders under node_modules instead of using npm list.
|
||||||
|
# This is because npm list is very slow (2s)
|
||||||
|
if has npm; then
|
||||||
|
# Try to apply heuristics to find the global directory.
|
||||||
|
if [[ -d /usr/lib/node_modules ]]; then
|
||||||
|
dir /usr/lib/node_modules/*/
|
||||||
|
elif [[ -d /usr/local/lib/node_modules ]]; then
|
||||||
|
dir /usr/local/lib/node_modules/*/
|
||||||
|
else
|
||||||
|
# If neither exist, use npm root -g to get the global directory.
|
||||||
|
# (still ~10x faster than npm list)
|
||||||
|
npm_global=$(npm root -g)
|
||||||
|
[[ -d $npm_global ]] && dir "$npm_global"/*/
|
||||||
|
|
||||||
|
# This may not work in WSL2 (if npm is installed on Windows, not WSL).
|
||||||
|
# However, if npm is not installed on this WSL subsystem, it doesn't really count
|
||||||
|
# as a package manager for this subsystem, so let's ignore this case.
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
# OS-specific package managers.
|
# OS-specific package managers.
|
||||||
case $os in
|
case $os in
|
||||||
Linux|BSD|"iPhone OS"|Solaris|illumos|Interix)
|
Linux|BSD|"iPhone OS"|Solaris|illumos|Interix)
|
||||||
|
|
Loading…
Reference in a new issue