From 1ab1c454d93c9730b9894892b776b8d0644943d1 Mon Sep 17 00:00:00 2001 From: Computed Functions <215638926+computed-fn@users.noreply.github.com> Date: Wed, 22 Jul 2026 16:39:34 +0700 Subject: [PATCH 1/4] fix: proper XDG base dir support using rc9 --- src/cli.ts | 4 ++-- src/utils/nuxtrc.ts | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/cli.ts b/src/cli.ts index 5c9fa7f6..1a69c998 100755 --- a/src/cli.ts +++ b/src/cli.ts @@ -154,7 +154,7 @@ async function _checkDisabled(dir: string): Promise return 'by ' + resolve(dir, RC_FILENAME) } - if (disabledByConf(rc.readUser({ name: RC_FILENAME }))) { + if (disabledByConf(rc.readUserConfig({ name: RC_FILENAME }))) { return 'by ' + resolve(homedir(), RC_FILENAME) } } @@ -172,7 +172,7 @@ async function showStatus(dir: string, global: boolean) { function setRC(dir: string, key: any, val: any, global: boolean) { const update = { [key]: val } if (global) { - rc.updateUser(update, RC_FILENAME) + rc.updateUserConfig(update, RC_FILENAME) } else { rc.update(update, { name: RC_FILENAME, dir }) diff --git a/src/utils/nuxtrc.ts b/src/utils/nuxtrc.ts index b85d51bf..7e448bc1 100644 --- a/src/utils/nuxtrc.ts +++ b/src/utils/nuxtrc.ts @@ -1,5 +1,5 @@ -import { updateUser } from 'rc9' +import { updateUserConfig } from 'rc9' export function updateUserNuxtRc(key: string, val: string | number | boolean) { - updateUser({ [key]: val }, '.nuxtrc') + updateUserConfig({ [key]: val }, '.nuxtrc') } From 7be9d13440a7fdfe2f21b71ad73b9afcb40eb97a Mon Sep 17 00:00:00 2001 From: Computed Functions <215638926+computed-fn@users.noreply.github.com> Date: Wed, 22 Jul 2026 16:58:56 +0700 Subject: [PATCH 2/4] fix: maintain backward compatible config read --- src/cli.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/cli.ts b/src/cli.ts index 1a69c998..d08d6944 100755 --- a/src/cli.ts +++ b/src/cli.ts @@ -154,9 +154,13 @@ async function _checkDisabled(dir: string): Promise return 'by ' + resolve(dir, RC_FILENAME) } - if (disabledByConf(rc.readUserConfig({ name: RC_FILENAME }))) { + if (disabledByConf(rc.readUser({ name: RC_FILENAME }))) { return 'by ' + resolve(homedir(), RC_FILENAME) } + + if (disabledByConf(rc.readUserConfig({ name: RC_FILENAME }))) { + return 'by ' + resolve(homedir(), '.config', RC_FILENAME) + } } async function showStatus(dir: string, global: boolean) { From 2b033c435de2abda63f53e28dbff10d979b4ee72 Mon Sep 17 00:00:00 2001 From: Computed Functions <215638926+computed-fn@users.noreply.github.com> Date: Fri, 24 Jul 2026 20:08:05 +0700 Subject: [PATCH 3/4] Fix CI for windows --- src/cli.ts | 5 ++++- src/utils/nuxtrc.ts | 7 +++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/cli.ts b/src/cli.ts index d08d6944..e6d5fe5b 100755 --- a/src/cli.ts +++ b/src/cli.ts @@ -154,12 +154,15 @@ async function _checkDisabled(dir: string): Promise return 'by ' + resolve(dir, RC_FILENAME) } + // This is maintained for backward compatibility if (disabledByConf(rc.readUser({ name: RC_FILENAME }))) { return 'by ' + resolve(homedir(), RC_FILENAME) } if (disabledByConf(rc.readUserConfig({ name: RC_FILENAME }))) { - return 'by ' + resolve(homedir(), '.config', RC_FILENAME) + // Uses the same resolving logic as rc9 + const rc9Base = process.env.XDG_CONFIG_HOME || resolve(homedir(), '.config') + return 'by ' + resolve(rc9Base, RC_FILENAME) } } diff --git a/src/utils/nuxtrc.ts b/src/utils/nuxtrc.ts index 7e448bc1..952b95ed 100644 --- a/src/utils/nuxtrc.ts +++ b/src/utils/nuxtrc.ts @@ -1,5 +1,12 @@ import { updateUserConfig } from 'rc9' +import { homedir } from 'node:os' +import { resolve } from 'node:path' +import { mkdirSync } from 'node:fs' export function updateUserNuxtRc(key: string, val: string | number | boolean) { + // Uses the same resolving logic as rc9 + const rc9Base = process.env.XDG_CONFIG_HOME || resolve(homedir(), '.config') + // Make sure the directory exists before rc9 attempt to write there + mkdirSync(rc9Base, { recursive: true }) updateUserConfig({ [key]: val }, '.nuxtrc') } From 217bb470da462e5206ebc759681885c516fffe99 Mon Sep 17 00:00:00 2001 From: Computed Functions <215638926+computed-fn@users.noreply.github.com> Date: Fri, 24 Jul 2026 20:20:17 +0700 Subject: [PATCH 4/4] fix: potential issue of rc9 failing to write to non existing directory on first run --- src/cli.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/cli.ts b/src/cli.ts index e6d5fe5b..4bed3f8d 100755 --- a/src/cli.ts +++ b/src/cli.ts @@ -1,4 +1,4 @@ -import { existsSync, readFileSync } from 'node:fs' +import { existsSync, readFileSync, mkdirSync } from 'node:fs' import { homedir } from 'node:os' import { resolve } from 'node:path' @@ -179,6 +179,10 @@ async function showStatus(dir: string, global: boolean) { function setRC(dir: string, key: any, val: any, global: boolean) { const update = { [key]: val } if (global) { + // Uses the same resolving logic as rc9 + const rc9Base = process.env.XDG_CONFIG_HOME || resolve(homedir(), '.config') + // Make sure the directory exists before rc9 attempt to write there + mkdirSync(rc9Base, { recursive: true }) rc.updateUserConfig(update, RC_FILENAME) } else {