INNER CODE UNIT · TypeScript
init
rgommezz/react-native-chatgpt · src/api/index.ts:20
export const init = (webviewRef: RefObject<WebView>['current']) => {
webview = webviewRef;
};
/**
* Monkey patches fetch to intercept ChatGPT requests and read the JWT
* It also injects 2 methods in the global scope to accomplish the following:
* 1. Sending messages to the ChatGPT backend directly from the Webview and stream the response back to RN
* 2. Removing the theme switcher button from the webview when GPT shows it's at full capacity
*
* Note: It'd be cool to define the function in normal JS and
* use fn.toString() or`${fn}` and wrap it in a IIFE,
* but babel messes up the transformations of async/await and breaks the injected code.
*/
export const createGlobalFunctionsInWebviewContext = () => {
return `
const { fetch: originalFetch } = window;
window.fetch = async (...args) => {