multiple schedule suppport kinda
This commit is contained in:
@@ -5,7 +5,7 @@ import onInstall from './events/onInstall';
|
||||
import onNewChromeSession from './events/onNewChromeSession';
|
||||
import onServiceWorkerAlive from './events/onServiceWorkerAlive';
|
||||
import onUpdate from './events/onUpdate';
|
||||
import { SessionStore } from '../shared/storage/SessionStore';
|
||||
import { sessionStore } from '../shared/storage/sessionStore';
|
||||
import browserActionHandler from './handler/browserActionHandler';
|
||||
import hotReloadingHandler from './handler/hotReloadingHandler';
|
||||
import tabManagementHandler from './handler/tabManagementHandler';
|
||||
@@ -38,9 +38,9 @@ const messageListener = new MessageListener<BACKGROUND_MESSAGES>({
|
||||
|
||||
messageListener.listen();
|
||||
|
||||
SessionStore.getChromeSessionId().then(async chromeSessionId => {
|
||||
sessionStore.get('chromeSessionId').then(async chromeSessionId => {
|
||||
if (!chromeSessionId) {
|
||||
await SessionStore.setChromeSessionId(generateRandomId(10));
|
||||
await sessionStore.set('chromeSessionId', generateRandomId(10));
|
||||
onNewChromeSession();
|
||||
}
|
||||
});
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
import { SECOND } from 'src/shared/util/time';
|
||||
import { ExtensionStore } from '../../shared/storage/ExtensionStore';
|
||||
import { extensionStore } from '../../shared/storage/extensionStore';
|
||||
|
||||
/**
|
||||
* Called when the extension is first installed or synced onto a new machine
|
||||
*/
|
||||
export default async function onInstall() {
|
||||
await ExtensionStore.setVersion(chrome.runtime.getManifest().version);
|
||||
await extensionStore.set('version', chrome.runtime.getManifest().version);
|
||||
}
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
import { hotReloadTab } from 'src/background/util/hotReloadTab';
|
||||
import { ExtensionStore } from '../../shared/storage/ExtensionStore';
|
||||
import { extensionStore } from '../../shared/storage/extensionStore';
|
||||
|
||||
/**
|
||||
* Called when the extension is updated (or when the extension is reloaded in development mode)
|
||||
*/
|
||||
export default async function onUpdate() {
|
||||
await Promise.all([
|
||||
ExtensionStore.setLastUpdate(Date.now()),
|
||||
ExtensionStore.setVersion(chrome.runtime.getManifest().version),
|
||||
]);
|
||||
await extensionStore.set({
|
||||
version: chrome.runtime.getManifest().version,
|
||||
lastUpdate: Date.now(),
|
||||
});
|
||||
|
||||
if (process.env.NODE_ENV === 'development') {
|
||||
hotReloadTab();
|
||||
|
||||
@@ -1,18 +1,17 @@
|
||||
import HotReloadingMessages from 'src/shared/messages/HotReloadingMessages';
|
||||
import { MessageHandler } from 'chrome-extension-toolkit';
|
||||
import { DevStore } from 'src/shared/storage/DevStore';
|
||||
import { devStore } from 'src/shared/storage/devStore';
|
||||
|
||||
const hotReloadingHandler: MessageHandler<HotReloadingMessages> = {
|
||||
async reloadExtension({ sendResponse }) {
|
||||
const isExtensionReloading = await DevStore.getIsExtensionReloading();
|
||||
const { isExtensionReloading, isTabReloading } = await devStore.get(['isExtensionReloading', 'isTabReloading']);
|
||||
if (!isExtensionReloading) return sendResponse();
|
||||
|
||||
const isTabReloading = await DevStore.getIsExtensionReloading();
|
||||
if (isTabReloading) {
|
||||
const tabs = await chrome.tabs.query({ active: true, currentWindow: true });
|
||||
const tabToReload = tabs[0];
|
||||
|
||||
await DevStore.setReloadTabId(tabToReload?.id);
|
||||
await devStore.set('reloadTabId', tabToReload?.id);
|
||||
}
|
||||
chrome.runtime.reload();
|
||||
},
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { DevStore } from 'src/shared/storage/DevStore';
|
||||
import { devStore } from 'src/shared/storage/devStore';
|
||||
|
||||
/**
|
||||
* A list of websites that we don't want to reload when the extension reloads (becuase it'd be hella annoying lmao)
|
||||
@@ -24,9 +24,7 @@ const HOT_RELOADING_WHITELIST = [
|
||||
* @returns a promise that resolves when the tab is reloaded
|
||||
*/
|
||||
export async function hotReloadTab(): Promise<void> {
|
||||
const { getIsTabReloading, getReloadTabId } = DevStore;
|
||||
|
||||
const [isTabReloading, reloadTabId] = await Promise.all([getIsTabReloading(), getReloadTabId()]);
|
||||
const { isTabReloading, reloadTabId } = await devStore.get(['isTabReloading', 'reloadTabId']);
|
||||
|
||||
if (!isTabReloading || !reloadTabId) return;
|
||||
|
||||
|
||||
@@ -1,24 +1,22 @@
|
||||
import { DevStore } from 'src/shared/storage/DevStore';
|
||||
import { devStore } from 'src/shared/storage/devStore';
|
||||
|
||||
/**
|
||||
* Open the debug tab as the first tab
|
||||
*/
|
||||
export async function openDebugTab() {
|
||||
if (process.env.NODE_ENV === 'development') {
|
||||
const debugTabId = await DevStore.getDebugTabId();
|
||||
const { debugTabId, wasDebugTabVisible } = await devStore.get(['debugTabId', 'wasDebugTabVisible']);
|
||||
|
||||
const isAlreadyOpen = await (await chrome.tabs.query({})).some(tab => tab.id === debugTabId);
|
||||
if (isAlreadyOpen) return;
|
||||
|
||||
const wasVisible = await DevStore.getWasDebugTabVisible();
|
||||
|
||||
const tab = await chrome.tabs.create({
|
||||
url: chrome.runtime.getURL('debug.html'),
|
||||
active: wasVisible,
|
||||
active: wasDebugTabVisible,
|
||||
pinned: true,
|
||||
index: 0,
|
||||
});
|
||||
|
||||
await DevStore.setDebugTabId(tab.id);
|
||||
await devStore.set('debugTabId', tab.id);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user