UNPKG

claude-gemini

Version:

Global CLI tool for Claude-Gemini integration across projects

49 lines 2.33 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.loadConfig = loadConfig; exports.saveConfig = saveConfig; const fs_extra_1 = __importDefault(require("fs-extra")); const path_1 = __importDefault(require("path")); const os_1 = __importDefault(require("os")); const DEFAULT_CONFIG = { timeout: 300, model: '', // Empty means let Gemini CLI decide (starts with pro, auto-fallback to flash) ripgrep: true, format: true, watchPatterns: ['*.ts', '*.tsx', '*.js', '*.jsx'] }; async function loadConfig() { const configs = []; // 1. Load global config const globalConfigPath = path_1.default.join(os_1.default.homedir(), '.claude-gemini', 'config.json'); if (await fs_extra_1.default.pathExists(globalConfigPath)) { configs.push(await fs_extra_1.default.readJson(globalConfigPath)); } // 2. Load project config const projectConfigPath = path_1.default.join(process.cwd(), '.claude-gemini', 'config.json'); if (await fs_extra_1.default.pathExists(projectConfigPath)) { configs.push(await fs_extra_1.default.readJson(projectConfigPath)); } // 3. Load .claude-gemini.json in project root const rootConfigPath = path_1.default.join(process.cwd(), '.claude-gemini.json'); if (await fs_extra_1.default.pathExists(rootConfigPath)) { configs.push(await fs_extra_1.default.readJson(rootConfigPath)); } // Merge configs (later ones override earlier ones) const merged = configs.reduce((acc, config) => ({ ...acc, ...config }), {}); return { ...DEFAULT_CONFIG, ...merged }; } async function saveConfig(config, global = false) { const configPath = global ? path_1.default.join(os_1.default.homedir(), '.claude-gemini', 'config.json') : path_1.default.join(process.cwd(), '.claude-gemini', 'config.json'); await fs_extra_1.default.ensureDir(path_1.default.dirname(configPath)); const existing = await fs_extra_1.default.pathExists(configPath) ? await fs_extra_1.default.readJson(configPath) : {}; await fs_extra_1.default.writeJson(configPath, { ...existing, ...config }, { spaces: 2 }); } //# sourceMappingURL=index.js.map