Files
SubMiner/launcher/config/shared-config-reader.ts
sudacode 420b985c7a refactor(launcher): split config parser and CLI builder
Decompose launcher/config.ts into focused domain parser and CLI normalization modules to reduce refactor risk while preserving command behavior. Align Jellyfin launcher config with session-based auth by dropping config token/userId dependency.
2026-02-22 12:01:04 -08:00

26 lines
861 B
TypeScript

import fs from 'node:fs';
import os from 'node:os';
import { parse as parseJsonc } from 'jsonc-parser';
import { resolveConfigFilePath } from '../../src/config/path-resolution.js';
export function resolveLauncherMainConfigPath(): string {
return resolveConfigFilePath({
xdgConfigHome: process.env.XDG_CONFIG_HOME,
homeDir: os.homedir(),
existsSync: fs.existsSync,
});
}
export function readLauncherMainConfigObject(): Record<string, unknown> | null {
const configPath = resolveLauncherMainConfigPath();
if (!fs.existsSync(configPath)) return null;
try {
const data = fs.readFileSync(configPath, 'utf8');
const parsed = configPath.endsWith('.jsonc') ? parseJsonc(data) : JSON.parse(data);
if (!parsed || typeof parsed !== 'object') return null;
return parsed as Record<string, unknown>;
} catch {
return null;
}
}