UNPKG

2.3 kBSource Map (JSON)View Raw
1{"version":3,"sources":["addEventListener.tsx"],"names":["addEventListener","Module","rest","eventName","handler","removed","subscription","remove","removeEventListener","addListener"],"mappings":";;;;;;;;AAKO,SAASA,gBAAT,CAOLC,MAPK,EAO2D;AAAA;;AAAA,oCAAlDC,IAAkD;AAAlDA,IAAAA,IAAkD;AAAA;;AAChE,QAAM,CAACC,SAAD,EAAYC,OAAZ,IAAuBF,IAA7B;AAEA,MAAIG,OAAO,GAAG,KAAd;AAEA,QAAMC,YAAY,4BAAGL,MAAM,CAACD,gBAAP,CAAwBG,SAAxB,EAAmCC,OAAnC,CAAH,yEAAkD;AAClEG,IAAAA,MAAM,EAAE,MAAM;AACZ,UAAIF,OAAJ,EAAa;AACX;AACD;;AAEDJ,MAAAA,MAAM,CAACO,mBAAP,CAA2BL,SAA3B,EAAsCC,OAAtC;AACAC,MAAAA,OAAO,GAAG,IAAV;AACD;AARiE,GAApE;AAWA,SAAOC,YAAP;AACD;;AAEM,SAASG,WAAT,CAKLR,MALK,EAKsD;AAAA;;AAAA,qCAA7CC,IAA6C;AAA7CA,IAAAA,IAA6C;AAAA;;AAC3D,QAAM,CAACC,SAAD,EAAYC,OAAZ,IAAuBF,IAA7B;AAEA,MAAIG,OAAO,GAAG,KAAd;AAEA,QAAMC,YAAY,0BAAGL,MAAM,CAACQ,WAAP,CAAmBN,SAAnB,EAA8BC,OAA9B,CAAH,qEAA6C;AAC7DG,IAAAA,MAAM,EAAE,MAAM;AACZ,UAAIF,OAAJ,EAAa;AACX;AACD;;AAEDJ,MAAAA,MAAM,CAACO,mBAAP,CAA2BL,SAA3B,EAAsCC,OAAtC;AACAC,MAAAA,OAAO,GAAG,IAAV;AACD;AAR4D,GAA/D;AAWA,SAAOC,YAAP;AACD","sourcesContent":["import type {\n NativeEventSubscription,\n EmitterSubscription,\n} from 'react-native';\n\nexport function addEventListener<\n T extends {\n addEventListener: (\n ...args: any\n ) => NativeEventSubscription | EmitterSubscription;\n removeEventListener: (...args: any) => void;\n }\n>(Module: T, ...rest: Parameters<typeof Module.addEventListener>) {\n const [eventName, handler] = rest;\n\n let removed = false;\n\n const subscription = Module.addEventListener(eventName, handler) ?? {\n remove: () => {\n if (removed) {\n return;\n }\n\n Module.removeEventListener(eventName, handler);\n removed = true;\n },\n };\n\n return subscription;\n}\n\nexport function addListener<\n T extends {\n addListener: (...args: any) => EmitterSubscription;\n removeEventListener: (...args: any) => void;\n }\n>(Module: T, ...rest: Parameters<typeof Module.addListener>) {\n const [eventName, handler] = rest;\n\n let removed = false;\n\n const subscription = Module.addListener(eventName, handler) ?? {\n remove: () => {\n if (removed) {\n return;\n }\n\n Module.removeEventListener(eventName, handler);\n removed = true;\n },\n };\n\n return subscription;\n}\n"]}
\No newline at end of file