Compare commits

...

2 Commits

Author SHA1 Message Date
Diego Perez
0939cab8f5 Merge branch 'main' into derek/settingsPageLag 2026-01-08 18:31:24 -06:00
f77f663fe7 feat: made a handler for github stats messages same way as the rest 2025-11-17 15:37:01 -06:00
4 changed files with 50 additions and 1 deletions

View File

@@ -9,6 +9,7 @@ import onUpdate from './events/onUpdate';
import browserActionHandler from './handler/browserActionHandler';
import calendarBackgroundHandler from './handler/calendarBackgroundHandler';
import CESHandler from './handler/CESHandler';
import gitHubStatsHandler from './handler/gitHubStatsHandler';
import tabManagementHandler from './handler/tabManagementHandler';
import userScheduleHandler from './handler/userScheduleHandler';
@@ -52,6 +53,7 @@ const messageListener = new MessageListener<BACKGROUND_MESSAGES>({
...userScheduleHandler,
...CESHandler,
...calendarBackgroundHandler,
...gitHubStatsHandler,
});
messageListener.listen();

View File

@@ -0,0 +1,31 @@
import type GitHubStatsMessages from '@shared/messages/GitHubStatsMessages';
import { GitHubStatsService } from '@views/lib/getGitHubStats';
import type { MessageHandler } from 'chrome-extension-toolkit';
const gitHubStatsService = new GitHubStatsService();
/**
* Handler for GitHub stats related messages
*/
const gitHubStatsHandler: MessageHandler<GitHubStatsMessages> = {
async fetchGitHubStats({ data, sendResponse }) {
try {
const includeMergedPRs = data ?? false;
const stats = await gitHubStatsService.fetchGitHubStats({ includeMergedPRs });
sendResponse(stats);
} catch (error) {
console.error('Error fetching GitHub stats in background:', error);
sendResponse({
adminGitHubStats: {},
userGitHubStats: {},
contributors: [],
names: {},
dataFetched: new Date(),
lastUpdated: new Date(),
isCached: false,
});
}
},
};
export default gitHubStatsHandler;

View File

@@ -0,0 +1,14 @@
import type { GitHubStatsService } from '@views/lib/getGitHubStats';
/* eslint-disable jsdoc/require-jsdoc */
export type GitHubStatsResult = Awaited<ReturnType<GitHubStatsService['fetchGitHubStats']>>;
export default interface GitHubStatsMessages {
/**
* Fetch GitHub statistics for all contributors
* @param includeMergedPRs - Whether to include merged PR counts (optional, default: false)
* @returns GitHub stats including commits, lines added/deleted, and optionally merged PRs
*/
fetchGitHubStats: (includeMergedPRs?: boolean) => GitHubStatsResult;
}

View File

@@ -3,6 +3,7 @@ import { createMessenger } from 'chrome-extension-toolkit';
import type BrowserActionMessages from './BrowserActionMessages';
import type { CalendarBackgroundMessages, CalendarTabMessages } from './CalendarMessages';
import type CESMessage from './CESMessage';
import type GitHubStatsMessages from './GitHubStatsMessages';
import type TabInfoMessages from './TabInfoMessages';
import type TabManagementMessages from './TabManagementMessages';
import type { UserScheduleMessages } from './UserScheduleMessages';
@@ -14,7 +15,8 @@ export type BACKGROUND_MESSAGES = BrowserActionMessages &
TabManagementMessages &
UserScheduleMessages &
CESMessage &
CalendarBackgroundMessages;
CalendarBackgroundMessages &
GitHubStatsMessages;
/**
* This is a type with all the message definitions that can be sent TO specific tabs