diff options
Diffstat (limited to 'llama.cpp/tools/server/webui/src/lib/utils/config-helpers.ts')
| -rw-r--r-- | llama.cpp/tools/server/webui/src/lib/utils/config-helpers.ts | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/llama.cpp/tools/server/webui/src/lib/utils/config-helpers.ts b/llama.cpp/tools/server/webui/src/lib/utils/config-helpers.ts new file mode 100644 index 0000000..b85242d --- /dev/null +++ b/llama.cpp/tools/server/webui/src/lib/utils/config-helpers.ts @@ -0,0 +1,51 @@ +/** + * Type-safe configuration helpers + * + * Provides utilities for safely accessing and modifying configuration objects + * with dynamic keys while maintaining TypeScript type safety. + */ + +/** + * Type-safe helper to access config properties dynamically + * Provides better type safety than direct casting to Record + */ +export function setConfigValue<T extends SettingsConfigType>( + config: T, + key: string, + value: unknown +): void { + if (key in config) { + (config as Record<string, unknown>)[key] = value; + } +} + +/** + * Type-safe helper to get config values dynamically + */ +export function getConfigValue<T extends SettingsConfigType>( + config: T, + key: string +): string | number | boolean | undefined { + const value = (config as Record<string, unknown>)[key]; + return value as string | number | boolean | undefined; +} + +/** + * Convert a SettingsConfigType to a ParameterRecord for specific keys + * Useful for parameter synchronization operations + */ +export function configToParameterRecord<T extends SettingsConfigType>( + config: T, + keys: string[] +): Record<string, string | number | boolean> { + const record: Record<string, string | number | boolean> = {}; + + for (const key of keys) { + const value = getConfigValue(config, key); + if (value !== undefined) { + record[key] = value; + } + } + + return record; +} |
