ai-cut/app/utils/storage.ts

137 lines
3.2 KiB
TypeScript
Raw Normal View History

2025-12-16 10:08:51 +00:00
/**
* localStorage
* AI Token Provider
*/
const STORAGE_KEYS = {
GEMINI_TOKEN: 'ai_token_gemini',
GROK_TOKEN: 'ai_token_grok',
PROVIDER: 'ai_provider',
TEXT_MODEL: 'ai_text_model',
VISION_MODEL: 'ai_vision_model',
IMAGE_GENERATION_MODEL: 'ai_image_generation_model',
TTS_MODEL: 'ai_tts_model'
} as const
/**
* Gemini Token
*/
export function getGeminiToken(): string | null {
if (typeof window === 'undefined') return null
return localStorage.getItem(STORAGE_KEYS.GEMINI_TOKEN)
}
/**
* Gemini Token
*/
export function setGeminiToken(token: string): void {
if (typeof window === 'undefined') return
localStorage.setItem(STORAGE_KEYS.GEMINI_TOKEN, token)
}
/**
* Grok Token
*/
export function getGrokToken(): string | null {
if (typeof window === 'undefined') return null
return localStorage.getItem(STORAGE_KEYS.GROK_TOKEN)
}
/**
* Grok Token
*/
export function setGrokToken(token: string): void {
if (typeof window === 'undefined') return
localStorage.setItem(STORAGE_KEYS.GROK_TOKEN, token)
}
/**
* Provider
*/
export function getProvider(): 'gemini' | 'grok' {
if (typeof window === 'undefined') return 'gemini'
const provider = localStorage.getItem(STORAGE_KEYS.PROVIDER)
return (provider === 'grok' ? 'grok' : 'gemini') as 'gemini' | 'grok'
}
/**
* Provider
*/
export function setProvider(provider: 'gemini' | 'grok'): void {
if (typeof window === 'undefined') return
localStorage.setItem(STORAGE_KEYS.PROVIDER, provider)
}
/**
* Provider Token
*/
export function getCurrentProviderToken(): string | null {
const provider = getProvider()
return provider === 'gemini' ? getGeminiToken() : getGrokToken()
}
/**
*
*/
export function getTextModel(): string | null {
if (typeof window === 'undefined') return null
return localStorage.getItem(STORAGE_KEYS.TEXT_MODEL)
}
/**
*
*/
export function setTextModel(model: string): void {
if (typeof window === 'undefined') return
localStorage.setItem(STORAGE_KEYS.TEXT_MODEL, model)
}
/**
*
*/
export function getVisionModel(): string | null {
if (typeof window === 'undefined') return null
return localStorage.getItem(STORAGE_KEYS.VISION_MODEL)
}
/**
*
*/
export function setVisionModel(model: string): void {
if (typeof window === 'undefined') return
localStorage.setItem(STORAGE_KEYS.VISION_MODEL, model)
}
/**
*
*/
export function getImageGenerationModel(): string | null {
if (typeof window === 'undefined') return null
return localStorage.getItem(STORAGE_KEYS.IMAGE_GENERATION_MODEL)
}
/**
*
*/
export function setImageGenerationModel(model: string): void {
if (typeof window === 'undefined') return
localStorage.setItem(STORAGE_KEYS.IMAGE_GENERATION_MODEL, model)
}
/**
* TTS
*/
export function getTTSModel(): string | null {
if (typeof window === 'undefined') return null
return localStorage.getItem(STORAGE_KEYS.TTS_MODEL)
}
/**
* TTS
*/
export function setTTSModel(model: string): void {
if (typeof window === 'undefined') return
localStorage.setItem(STORAGE_KEYS.TTS_MODEL, model)
}