Skip to content

Commit 4f90176

Browse files
authored
fix(fnm): simplify config and respect package.json
1 parent 3d6b378 commit 4f90176

File tree

1 file changed

+6
-21
lines changed

1 file changed

+6
-21
lines changed

modules/fnm/fnm.nu

Lines changed: 6 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,8 @@
11
export-env {
2-
def fnm-env [] {
3-
mut env_vars = {}
4-
let pwsh_vars = (
5-
^fnm env --shell power-shell | lines | parse "$env:{key} = \"{value}\""
6-
)
7-
8-
# fnm-prefixed vars
9-
for v in ($pwsh_vars | slice 1..) {
10-
$env_vars = ($env_vars | insert $v.key $v.value)
11-
}
12-
13-
# path
14-
let env_used_path = ($env | columns | where { str downcase | $in == "path" } | get 0)
15-
let path_value = ($pwsh_vars | get 0.value | split row (char esep))
16-
$env_vars = ($env_vars | insert $env_used_path $path_value)
17-
18-
return $env_vars
19-
}
20-
212
if not (which fnm | is-empty) {
22-
fnm-env | load-env
3+
^fnm env --json | from json | load-env
4+
5+
$env.PATH = $env.PATH | prepend ($env.FNM_MULTISHELL_PATH | path join (if $nu.os-info.name == 'windows' {''} else {'bin'}))
236

247
$env.config = (
258
$env.config?
@@ -32,11 +15,13 @@ export-env {
3215
$env.config.hooks.env_change.PWD | any { try { get __fnm_hook } catch { false } }
3316
)
3417
if not $__fnm_hooked {
18+
let version_files = [.nvmrc .node-version package.json]
19+
3520
$env.config.hooks.env_change.PWD = (
3621
$env.config.hooks.env_change.PWD | append {
3722
__fnm_hook: true
3823
code: {|before, after|
39-
if ('FNM_DIR' in $env) and ([.nvmrc .node-version] | path exists | any {|it| $it }) {
24+
if ('FNM_DIR' in $env) and ($version_files | path exists | any {|it| $it }) {
4025
^fnm use
4126
}
4227
}

0 commit comments

Comments
 (0)