This mess of code with explicit individual references to settings was needed to not get TypeScript errors (details on Stackoverflow):
function setSetting(setting: Setting, value: SettingsTypes) {
// all this to keep typescript happy. there has to be a better way?
// https://stackoverflow.com/questions/75809343/type-string-number-is-not-assignable-to-type-never-when-dynamically-settin/75809489#75809489
if ((setting === 'maxTokens' || setting === 'historyLength') && typeof value === 'number')
settings[setting] = value;
if (
(setting === 'model' || setting === 'system' || setting === 'apiKey') &&
typeof value === 'string'
)
settings[setting] = value;
if ((setting === 'wordWrap' || setting === 'clipboard') && typeof value === 'boolean')
settings[setting] = value;
console.log(`${pc.cyan(setting.toLowerCase())} set to ${pc.magenta(String(value))}`);
}
See if something can be done, since now every time a new setting is added, it needs to go into the right if block.
This mess of code with explicit individual references to settings was needed to not get TypeScript errors (details on Stackoverflow):
See if something can be done, since now every time a new setting is added, it needs to go into the right if block.