11// The content script runs inside each page this extension is enabled on
22
3+ import { RunTask , SetAPIKey , SetTask } from "@root/src/constants" ;
34import { initializeRPC } from "./domOperations" ;
45
56initializeRPC ( ) ;
67
7- document . addEventListener ( "SetAPIKey" , function ( event ) {
8- const customEvent = event as CustomEvent ;
9- chrome . runtime . sendMessage ( {
10- type : "API_KEY" ,
11- value : customEvent . detail . value ,
12- } ) ;
8+ document . addEventListener ( SetAPIKey , function ( event ) {
9+ if ( isCustomEvent ( event ) ) {
10+ const customEvent = event as CustomEvent ;
11+ chrome . runtime . sendMessage ( {
12+ type : "API_KEY" ,
13+ value : customEvent . detail . value ,
14+ } ) ;
15+ }
1316} ) ;
1417
15- document . addEventListener ( "SetTask" , function ( event ) {
16- const customEvent = event as CustomEvent ;
17- chrome . runtime . sendMessage ( {
18- type : "SET_TASK" ,
19- value : customEvent . detail . value ,
20- } ) ;
18+ document . addEventListener ( SetTask , function ( event ) {
19+ if ( isCustomEvent ( event ) ) {
20+ const customEvent = event as CustomEvent ;
21+ chrome . runtime . sendMessage ( {
22+ type : "SET_TASK" ,
23+ value : customEvent . detail . value ,
24+ } ) ;
25+ }
2126} ) ;
2227
23- document . addEventListener ( " RunTask" , function ( ) {
28+ document . addEventListener ( RunTask , function ( ) {
2429 chrome . runtime . sendMessage ( { type : "RUN_TASK" } ) ;
2530} ) ;
2631
@@ -46,7 +51,18 @@ chrome.runtime.onMessage.addListener(function (message) {
4651 }
4752} ) ;
4853
49- function dispatchCustomEvent ( eventType : string , detail ) {
54+ type CustomEventDetail = {
55+ type : string ;
56+ status : string ;
57+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
58+ data : any ;
59+ } ;
60+
61+ function dispatchCustomEvent ( eventType : string , detail : CustomEventDetail ) {
5062 const event = new CustomEvent ( eventType , { detail } ) ;
5163 document . dispatchEvent ( event ) ;
5264}
65+
66+ function isCustomEvent ( event : Event ) : event is CustomEvent {
67+ return "detail" in event ;
68+ }
0 commit comments