()
| 149 | }); |
| 150 | |
| 151 | export const loadSettings = async () => { |
| 152 | const result = await getLocal([SETTINGS_KEY]); |
| 153 | const saved = result[SETTINGS_KEY]; |
| 154 | if (!isSettings(saved)) return defaultSettings; |
| 155 | const apiBaseUrl = |
| 156 | import.meta.env.MODE === "development" && |
| 157 | saved.apiBaseUrl === PRODUCTION_API_BASE_URL |
| 158 | ? DEFAULT_API_BASE_URL |
| 159 | : saved.apiBaseUrl; |
| 160 | return { |
| 161 | ...defaultSettings, |
| 162 | ...saved, |
| 163 | apiBaseUrl, |
| 164 | capture: normalizeCapturePreferences(saved.capture), |
| 165 | webcam: normalizeWebcamSettings(saved.webcam), |
| 166 | microphone: normalizeMicrophoneSettings(saved.microphone), |
| 167 | systemAudio: { |
| 168 | ...defaultSettings.systemAudio, |
| 169 | ...saved.systemAudio, |
| 170 | }, |
| 171 | sounds: normalizeSoundSettings(saved.sounds), |
| 172 | countdown: normalizeCountdownSettings(saved.countdown), |
| 173 | microphoneWarning: normalizeMicrophoneWarningSettings( |
| 174 | saved.microphoneWarning, |
| 175 | ), |
| 176 | }; |
| 177 | }; |
| 178 | |
| 179 | export const saveSettings = (settings: ExtensionSettings) => |
| 180 | setLocal({ [SETTINGS_KEY]: settings }); |
no test coverage detected