import browser from 'webextension-polyfill'; import {Queue} from '../types.d'; import Settings from './settings'; /** Initializes the background message handler. */ export function backgroundHandler() { browser.runtime.onMessage.addListener((request: Queue.Message) => { if (request.action === 'queue open url') { // @ts-expect-error Changing to . const message: Queue.Message = request; window.location.href = message.data.url; } }); } /** Returns the WebExtension Manifest. */ export function getManifest(): Queue.Manifest { return browser.runtime.getManifest(); } /** * Updates the extension icon badge with the number of saved items. This can * only be run from the background script. */ export async function updateBadge(settings: Settings): Promise { await browser.browserAction.setBadgeBackgroundColor({ color: '#2a2041', }); await browser.browserAction.setBadgeText({ text: settings.queue.length === 0 ? null : settings.queue.length.toString(), }); browser.browserAction.setBadgeTextColor({ color: '#f2efff', }); }