Files
kutt-extension/source/util/settings.ts
2026-01-04 03:24:00 +05:30

39 lines
1017 B
TypeScript

import browser from 'webextension-polyfill';
import {DomainEntryProperties} from '../Background';
// Core Extensions settings props
export type ExtensionSettingsProperties = {
apikey: string;
history: boolean;
user?: {
email?: string;
domains?: DomainEntryProperties[];
} | null;
};
// update extension settings in browser storage
export function saveExtensionSettings(settings: any): Promise<void> {
return browser.storage.local.set({
settings,
});
}
// eslint-disable-next-line @typescript-eslint/no-explicit-any
export function getExtensionSettings(): Promise<{[s: string]: any}> {
return browser.storage.local.get('settings');
}
export async function updateExtensionSettings(newFields?: {
[s: string]: any;
}): Promise<void> {
const {settings = {}} = await getExtensionSettings();
return saveExtensionSettings({...settings, ...newFields});
}
// Clear all extension settings
export function clearExtensionSettings(): Promise<void> {
return browser.storage.local.clear();
}