({ session, stop })
| 244 | * @param {boolean|undefined} stop |
| 245 | */ |
| 246 | const postMessage = async ({ session, stop }) => { |
| 247 | if (useForegroundFetch) { |
| 248 | foregroundMessageListeners.current.forEach((listener) => listener({ session, stop })) |
| 249 | if (session) { |
| 250 | const fakePort = { |
| 251 | postMessage: (msg) => { |
| 252 | portMessageListener(msg) |
| 253 | }, |
| 254 | onMessage: { |
| 255 | addListener: (listener) => { |
| 256 | foregroundMessageListeners.current.push(listener) |
| 257 | }, |
| 258 | removeListener: (listener) => { |
| 259 | foregroundMessageListeners.current.splice( |
| 260 | foregroundMessageListeners.current.indexOf(listener), |
| 261 | 1, |
| 262 | ) |
| 263 | }, |
| 264 | }, |
| 265 | onDisconnect: { |
| 266 | addListener: () => {}, |
| 267 | removeListener: () => {}, |
| 268 | }, |
| 269 | } |
| 270 | try { |
| 271 | const bingToken = (await getUserConfig()).bingAccessToken |
| 272 | if (isUsingModelName('bingFreeSydney', session)) |
| 273 | await generateAnswersWithBingWebApi( |
| 274 | fakePort, |
| 275 | session.question, |
| 276 | session, |
| 277 | bingToken, |
| 278 | true, |
| 279 | ) |
| 280 | else await generateAnswersWithBingWebApi(fakePort, session.question, session, bingToken) |
| 281 | } catch (err) { |
| 282 | handlePortError(session, fakePort, err) |
| 283 | } |
| 284 | } |
| 285 | } else { |
| 286 | port.postMessage({ session, stop }) |
| 287 | } |
| 288 | } |
| 289 | |
| 290 | useEffect(() => { |
| 291 | const portListener = () => { |
no test coverage detected