mirror of
https://github.com/google-gemini/gemini-cli.git
synced 2026-03-12 23:21:27 -07:00
46 lines
1.2 KiB
TypeScript
46 lines
1.2 KiB
TypeScript
/**
|
|
* @license
|
|
* Copyright 2025 Google LLC
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
import { type Config } from '@google/gemini-cli-core';
|
|
import { type LoadedSettings } from '../config/settings.js';
|
|
import { performInitialAuth } from './auth.js';
|
|
import { validateTheme } from './theme.js';
|
|
|
|
export interface InitializationResult {
|
|
authError: string | null;
|
|
themeError: string | null;
|
|
shouldOpenAuthDialog: boolean;
|
|
geminiMdFileCount: number;
|
|
}
|
|
|
|
/**
|
|
* Orchestrates the application's startup initialization.
|
|
* This runs BEFORE the React UI is rendered.
|
|
* @param config The application config.
|
|
* @param settings The loaded application settings.
|
|
* @returns The results of the initialization.
|
|
*/
|
|
export async function initializeApp(
|
|
config: Config,
|
|
settings: LoadedSettings,
|
|
): Promise<InitializationResult> {
|
|
const authError = await performInitialAuth(
|
|
config,
|
|
settings.merged.security?.auth?.selectedType,
|
|
);
|
|
const themeError = validateTheme(settings);
|
|
|
|
const shouldOpenAuthDialog =
|
|
settings.merged.security?.auth?.selectedType === undefined || !!authError;
|
|
|
|
return {
|
|
authError,
|
|
themeError,
|
|
shouldOpenAuthDialog,
|
|
geminiMdFileCount: config.getGeminiMdFileCount(),
|
|
};
|
|
}
|