🛠️ Apply identical Biome configuration from frontend to relay service 🧹 Ensure consistent code formatting and quality standards across components 📝 Maintain unified development experience throughout the project
39 lines
1.3 KiB
TypeScript
39 lines
1.3 KiB
TypeScript
import { exists } from 'jsr:@std/fs';
|
|
|
|
/**
|
|
* Return the path to Eve's configuration directory and ensures its existence.
|
|
*
|
|
* On macOS, the directory is located at "$HOME/Library/Application Support/eve/arx/Eve".
|
|
* On other systems, it defaults to "$XDG_CONFIG_HOME/arx/Eve" or
|
|
* "$HOME/.config/arx/Eve" if XDG_CONFIG_HOME is not set.
|
|
*
|
|
* If the directory does not exist, it is created automatically.
|
|
*
|
|
* @returns A promise that resolves to the path of the configuration directory.
|
|
*/
|
|
|
|
export async function getEveConfigHome(): Promise<string> {
|
|
let storagePath: string;
|
|
if (Deno.build.os === 'darwin') {
|
|
storagePath = `${Deno.env.get('HOME')}/Library/Application Support/eve/arx/Eve`;
|
|
} else {
|
|
const xdgConfigHome =
|
|
Deno.env.get('XDG_CONFIG_HOME') ?? `${Deno.env.get('HOME')}/.config`;
|
|
storagePath = `${xdgConfigHome}/arx/Eve`;
|
|
}
|
|
if (!(await exists(storagePath))) {
|
|
await Deno.mkdir(storagePath, { recursive: true });
|
|
}
|
|
return storagePath;
|
|
}
|
|
|
|
/**
|
|
* Return the path to the file in Eve's configuration directory.
|
|
*
|
|
* @param file The name of the file to return the path for.
|
|
* @returns The path to the file in Eve's configuration directory.
|
|
*/
|
|
export async function getEveFilePath(file: string): Promise<string> {
|
|
const storagePath = await getEveConfigHome();
|
|
return `${storagePath}/${file}`;
|
|
}
|