Compare commits
2 Commits
feat/uniqu
...
derek/sett
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0939cab8f5 | ||
| f77f663fe7 |
@@ -9,6 +9,7 @@ import onUpdate from './events/onUpdate';
|
|||||||
import browserActionHandler from './handler/browserActionHandler';
|
import browserActionHandler from './handler/browserActionHandler';
|
||||||
import calendarBackgroundHandler from './handler/calendarBackgroundHandler';
|
import calendarBackgroundHandler from './handler/calendarBackgroundHandler';
|
||||||
import CESHandler from './handler/CESHandler';
|
import CESHandler from './handler/CESHandler';
|
||||||
|
import gitHubStatsHandler from './handler/gitHubStatsHandler';
|
||||||
import tabManagementHandler from './handler/tabManagementHandler';
|
import tabManagementHandler from './handler/tabManagementHandler';
|
||||||
import userScheduleHandler from './handler/userScheduleHandler';
|
import userScheduleHandler from './handler/userScheduleHandler';
|
||||||
|
|
||||||
@@ -52,6 +53,7 @@ const messageListener = new MessageListener<BACKGROUND_MESSAGES>({
|
|||||||
...userScheduleHandler,
|
...userScheduleHandler,
|
||||||
...CESHandler,
|
...CESHandler,
|
||||||
...calendarBackgroundHandler,
|
...calendarBackgroundHandler,
|
||||||
|
...gitHubStatsHandler,
|
||||||
});
|
});
|
||||||
|
|
||||||
messageListener.listen();
|
messageListener.listen();
|
||||||
|
|||||||
31
src/pages/background/handler/gitHubStatsHandler.ts
Normal file
31
src/pages/background/handler/gitHubStatsHandler.ts
Normal 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;
|
||||||
14
src/shared/messages/GitHubStatsMessages.ts
Normal file
14
src/shared/messages/GitHubStatsMessages.ts
Normal 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;
|
||||||
|
}
|
||||||
@@ -3,6 +3,7 @@ import { createMessenger } from 'chrome-extension-toolkit';
|
|||||||
import type BrowserActionMessages from './BrowserActionMessages';
|
import type BrowserActionMessages from './BrowserActionMessages';
|
||||||
import type { CalendarBackgroundMessages, CalendarTabMessages } from './CalendarMessages';
|
import type { CalendarBackgroundMessages, CalendarTabMessages } from './CalendarMessages';
|
||||||
import type CESMessage from './CESMessage';
|
import type CESMessage from './CESMessage';
|
||||||
|
import type GitHubStatsMessages from './GitHubStatsMessages';
|
||||||
import type TabInfoMessages from './TabInfoMessages';
|
import type TabInfoMessages from './TabInfoMessages';
|
||||||
import type TabManagementMessages from './TabManagementMessages';
|
import type TabManagementMessages from './TabManagementMessages';
|
||||||
import type { UserScheduleMessages } from './UserScheduleMessages';
|
import type { UserScheduleMessages } from './UserScheduleMessages';
|
||||||
@@ -14,7 +15,8 @@ export type BACKGROUND_MESSAGES = BrowserActionMessages &
|
|||||||
TabManagementMessages &
|
TabManagementMessages &
|
||||||
UserScheduleMessages &
|
UserScheduleMessages &
|
||||||
CESMessage &
|
CESMessage &
|
||||||
CalendarBackgroundMessages;
|
CalendarBackgroundMessages &
|
||||||
|
GitHubStatsMessages;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This is a type with all the message definitions that can be sent TO specific tabs
|
* This is a type with all the message definitions that can be sent TO specific tabs
|
||||||
|
|||||||
Reference in New Issue
Block a user