From 53d46a5c1e9a0eedf51769ef46196f66549a3be8 Mon Sep 17 00:00:00 2001 From: Orion Kindel Date: Tue, 10 Oct 2023 10:40:51 -0500 Subject: [PATCH] fix: connectConsole should disconnect on page close --- src/Puppeteer.Page.Event.purs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/Puppeteer.Page.Event.purs b/src/Puppeteer.Page.Event.purs index 2bf4ae9..67d7e41 100644 --- a/src/Puppeteer.Page.Event.purs +++ b/src/Puppeteer.Page.Event.purs @@ -18,7 +18,7 @@ module Puppeteer.Page.Event import Prelude -import Control.Monad.Error.Class (liftEither) +import Control.Monad.Error.Class (liftEither, try) import Control.Monad.Except (runExcept) import Data.Bifunctor (lmap) import Data.Either (hush, note) @@ -32,7 +32,7 @@ import Effect.Console as Console import Effect.Exception (Error, error) import Effect.Unsafe (unsafePerformEffect) import Foreign (Foreign, unsafeFromForeign) -import Puppeteer.Base (Context(..), Frame, Page) +import Puppeteer.Base (Context(..), Frame, Page, closeContext) import Puppeteer.HTTP as HTTP import Puppeteer.Page as Page import Puppeteer.Page.Event.ConsoleMessage (ConsoleMessage, messageTypeString) @@ -55,7 +55,10 @@ connectPageConsole p = ConsoleMessage.Warning -> Console.warn text _ -> Console.log text in - void $ listen Console onmsg p + launchAff_ do + stop <- liftEffect $ listen Console (void <<< try <<< onmsg) p + once Close p + closeContext stop data UnitEvent = Close