Bläddra i källkod

Add a runQueryAndDetach function

jherve 1 år sedan
förälder
incheckning
ed3325eb06
1 ändrade filer med 19 tillägg och 0 borttagningar
  1. 19 0
      src/Content.purs

+ 19 - 0
src/Content.purs

@@ -4,9 +4,12 @@ import Prelude
 
 import Browser.DOM (getBrowserDom)
 import Data.Either (Either(..))
+import Data.Maybe (Maybe(..))
+import Data.Traversable (class Traversable, traverse)
 import Effect (Effect)
 import Effect.Class.Console (logShow)
 import Effect.Console (log)
+import LinkedIn.DetachedNode (DetachedNode, toDetached)
 import LinkedIn.Page.JobOffer as PageJ
 import LinkedIn.Page.Projects as PageP
 import LinkedIn.Page.Skills as PageS
@@ -25,6 +28,8 @@ main = do
   runQueryAndExtract PageS.query PageS.extract dom
   runQueryAndExtract PageJ.query PageJ.extract dom
 
+  runQueryAndDetach PageJ.query dom >>= logShow
+
 runQueryAndExtract ∷
   ∀ f1 a.
   Show a
@@ -39,3 +44,17 @@ runQueryAndExtract query extract dom = do
     Right q -> do
       extracted <- extract q
       logShow extracted
+
+runQueryAndDetach ∷
+  ∀ f1.
+  Traversable f1
+  ⇒ QueryRunner' Document (f1 Node)
+  → Document
+  → Effect (Maybe (f1 DetachedNode))
+runQueryAndDetach query dom = do
+  n <- runQuery $ query dom
+  case n of
+    Left _ -> pure Nothing
+    Right q -> do
+      d <- traverse toDetached q
+      pure $ Just d