mirror of
https://github.com/CherryHQ/cherry-studio.git
synced 2025-12-24 18:50:56 +08:00
refactor(preferences): rename and update multiple preferences result type
- Renamed `MultiPreferencesResultType` to `PreferenceMultipleResultType` for clarity and consistency. - Updated `getMultipleRaw` method in `PreferenceService` to reflect the new type name. - Adjusted related components and services to utilize the updated type, ensuring consistent usage across the application.
This commit is contained in:
parent
747581dcfb
commit
df0ca5bb2e
@ -4,10 +4,10 @@ export type PreferenceDefaultScopeType = PreferenceSchemas['default']
|
||||
export type PreferenceKeyType = keyof PreferenceDefaultScopeType
|
||||
|
||||
/**
|
||||
* Result type for getMultipleRaw - maps requested keys to their values or undefined
|
||||
* Result type for getMultipleRaw - maps requested keys to their values
|
||||
*/
|
||||
export type MultiPreferencesResultType<K extends PreferenceKeyType> = {
|
||||
[P in K]: PreferenceDefaultScopeType[P] | undefined
|
||||
export type PreferenceMultipleResultType<K extends PreferenceKeyType> = {
|
||||
[P in K]: PreferenceDefaultScopeType[P]
|
||||
}
|
||||
|
||||
export type PreferenceUpdateOptions = {
|
||||
|
||||
@ -2,9 +2,9 @@ import { dbService } from '@data/db/DbService'
|
||||
import { loggerService } from '@logger'
|
||||
import { DefaultPreferences } from '@shared/data/preference/preferenceSchemas'
|
||||
import type {
|
||||
MultiPreferencesResultType,
|
||||
PreferenceDefaultScopeType,
|
||||
PreferenceKeyType
|
||||
PreferenceKeyType,
|
||||
PreferenceMultipleResultType
|
||||
} from '@shared/data/preference/preferenceTypes'
|
||||
import { IpcChannel } from '@shared/IpcChannel'
|
||||
import { and, eq } from 'drizzle-orm'
|
||||
@ -259,26 +259,18 @@ export class PreferenceService {
|
||||
* @param keys Array of preference keys to retrieve
|
||||
* @returns Object with preference values for requested keys
|
||||
*/
|
||||
public getMultipleRaw<K extends PreferenceKeyType>(keys: K[]): MultiPreferencesResultType<K> {
|
||||
public getMultipleRaw<K extends PreferenceKeyType>(keys: K[]): PreferenceMultipleResultType<K> {
|
||||
if (!this.initialized) {
|
||||
logger.warn('Preference cache not initialized, returning defaults for multiple keys')
|
||||
const output: MultiPreferencesResultType<K> = {} as MultiPreferencesResultType<K>
|
||||
for (const key of keys) {
|
||||
if (key in DefaultPreferences.default) {
|
||||
output[key] = DefaultPreferences.default[key]
|
||||
} else {
|
||||
output[key] = undefined as MultiPreferencesResultType<K>[K]
|
||||
}
|
||||
}
|
||||
return output
|
||||
}
|
||||
|
||||
const output: MultiPreferencesResultType<K> = {} as MultiPreferencesResultType<K>
|
||||
const output: PreferenceMultipleResultType<K> = {} as PreferenceMultipleResultType<K>
|
||||
for (const key of keys) {
|
||||
if (key in this.cache) {
|
||||
// Prefer cache value, fallback to default
|
||||
if (this.initialized && key in this.cache) {
|
||||
output[key] = this.cache[key]
|
||||
} else {
|
||||
output[key] = undefined
|
||||
output[key] = DefaultPreferences.default[key]
|
||||
}
|
||||
}
|
||||
|
||||
@ -305,7 +297,7 @@ export class PreferenceService {
|
||||
const result = {} as { [P in keyof T]: PreferenceDefaultScopeType[T[P]] }
|
||||
|
||||
for (const key in keys) {
|
||||
result[key] = values[keys[key]]!
|
||||
result[key] = values[keys[key]]
|
||||
}
|
||||
|
||||
return result
|
||||
|
||||
@ -7,9 +7,9 @@ import type { LogLevel, LogSourceWithContext } from '@shared/config/logger'
|
||||
import type { FileChangeEvent, WebviewKeyEvent } from '@shared/config/types'
|
||||
import type { CacheSyncMessage } from '@shared/data/cache/cacheTypes'
|
||||
import type {
|
||||
MultiPreferencesResultType,
|
||||
PreferenceDefaultScopeType,
|
||||
PreferenceKeyType,
|
||||
PreferenceMultipleResultType,
|
||||
SelectionActionItem
|
||||
} from '@shared/data/preference/preferenceTypes'
|
||||
import type { UpgradeChannel } from '@shared/data/preference/preferenceTypes'
|
||||
@ -554,7 +554,7 @@ const api = {
|
||||
ipcRenderer.invoke(IpcChannel.Preference_Get, key),
|
||||
set: <K extends PreferenceKeyType>(key: K, value: PreferenceDefaultScopeType[K]): Promise<void> =>
|
||||
ipcRenderer.invoke(IpcChannel.Preference_Set, key, value),
|
||||
getMultipleRaw: <K extends PreferenceKeyType>(keys: K[]): Promise<MultiPreferencesResultType<K>> =>
|
||||
getMultipleRaw: <K extends PreferenceKeyType>(keys: K[]): Promise<PreferenceMultipleResultType<K>> =>
|
||||
ipcRenderer.invoke(IpcChannel.Preference_GetMultipleRaw, keys),
|
||||
setMultiple: (updates: Partial<PreferenceDefaultScopeType>) =>
|
||||
ipcRenderer.invoke(IpcChannel.Preference_SetMultiple, updates),
|
||||
|
||||
@ -1,9 +1,9 @@
|
||||
import { loggerService } from '@logger'
|
||||
import { DefaultPreferences } from '@shared/data/preference/preferenceSchemas'
|
||||
import type {
|
||||
MultiPreferencesResultType,
|
||||
PreferenceDefaultScopeType,
|
||||
PreferenceKeyType,
|
||||
PreferenceMultipleResultType,
|
||||
PreferenceUpdateOptions
|
||||
} from '@shared/data/preference/preferenceTypes'
|
||||
|
||||
@ -244,7 +244,7 @@ export class PreferenceService {
|
||||
* @param keys Array of preference keys to retrieve
|
||||
* @returns Promise resolving to object with preference values for requested keys
|
||||
*/
|
||||
public async getMultipleRaw<K extends PreferenceKeyType>(keys: K[]): Promise<MultiPreferencesResultType<K>> {
|
||||
public async getMultipleRaw<K extends PreferenceKeyType>(keys: K[]): Promise<PreferenceMultipleResultType<K>> {
|
||||
// Check which keys are already cached
|
||||
const cachedResults: Partial<PreferenceDefaultScopeType> = {}
|
||||
const uncachedKeys: PreferenceKeyType[] = []
|
||||
@ -272,7 +272,7 @@ export class PreferenceService {
|
||||
await this.subscribeToKeyInternal([key as PreferenceKeyType])
|
||||
}
|
||||
|
||||
return { ...cachedResults, ...uncachedResults } as MultiPreferencesResultType<K>
|
||||
return { ...cachedResults, ...uncachedResults } as PreferenceMultipleResultType<K>
|
||||
} catch (error) {
|
||||
logger.error('Failed to get multiple preferences:', error as Error)
|
||||
|
||||
@ -284,11 +284,11 @@ export class PreferenceService {
|
||||
}
|
||||
}
|
||||
|
||||
return { ...cachedResults, ...defaultResults } as MultiPreferencesResultType<K>
|
||||
return { ...cachedResults, ...defaultResults } as PreferenceMultipleResultType<K>
|
||||
}
|
||||
}
|
||||
|
||||
return cachedResults as MultiPreferencesResultType<K>
|
||||
return cachedResults as PreferenceMultipleResultType<K>
|
||||
}
|
||||
|
||||
/**
|
||||
@ -303,7 +303,7 @@ export class PreferenceService {
|
||||
const result = {} as { [P in keyof T]: PreferenceDefaultScopeType[T[P]] }
|
||||
|
||||
for (const key in keys) {
|
||||
result[key] = values[keys[key]]!
|
||||
result[key] = values[keys[key]]
|
||||
}
|
||||
|
||||
return result
|
||||
|
||||
Loading…
Reference in New Issue
Block a user