webext-options-sync-per-domain
Version:
Helps you manage and autosave your extension's options, separately for each additional permission.
34 lines (33 loc) • 1.26 kB
TypeScript
import OptionsSync, { type Options, type Setup } from 'webext-options-sync';
export * from 'webext-options-sync';
export { default as OptionsSync } from 'webext-options-sync';
export type SyncedForm = Readonly<{
domainCount: number;
getSelectedDomain: () => string;
onChange(callback: (domain: string) => void): void;
}>;
export default class OptionsSyncPerDomain<UserOptions extends Options> {
#private;
static readonly migrations: {
removeUnused(options: Options, defaults: Options): void;
};
constructor(options: Setup<UserOptions>);
getOptionsForOrigin(origin?: string): OptionsSync<UserOptions>;
getAllOrigins(): Promise<Map<string, OptionsSync<UserOptions>>>;
getAdditionalOrigins(): Promise<Array<{
origin: string;
domain: string;
}>>;
syncForm(form: string | HTMLFormElement): Promise<Readonly<{
domainCount: 1;
getSelectedDomain: () => "default";
onChange(): void;
}> | Readonly<{
domainCount: number;
getSelectedDomain: () => string;
onChange: (callback: (domain: string) => void) => Promise<void>;
}>>;
private getStorageNameForOrigin;
private getOriginFromDomain;
private readonly _domainChangeHandler;
}