claude-gemini
Version:
Global CLI tool for Claude-Gemini integration across projects
49 lines • 2.33 kB
JavaScript
;
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