CanBeQueried.purs 854 B

12345678910111213141516171819202122
  1. module LinkedIn.CanBeQueried where
  2. import Prelude
  3. import Data.List (List)
  4. import Data.List.Types (NonEmptyList)
  5. import Data.Traversable (traverse)
  6. import LinkedIn.QueryRunner (Query, queryNEL, queryList, queryOne)
  7. import LinkedIn.Queryable (class Queryable)
  8. import Web.DOM (Node)
  9. class Queryable root <= CanBeQueried root t where
  10. query :: Query root (t Node)
  11. subQueryOne ∷ ∀ q t. CanBeQueried Node t ⇒ Queryable q ⇒ String → Query q (t Node)
  12. subQueryOne selector n = query =<< queryOne selector n
  13. subQueryNEL ∷ ∀ q t. CanBeQueried Node t ⇒ Queryable q ⇒ String → Query q (NonEmptyList (t Node))
  14. subQueryNEL selector n = traverse query =<< queryNEL selector n
  15. subQueryList ∷ ∀ q t. CanBeQueried Node t ⇒ Queryable q ⇒ String → Query q (List (t Node))
  16. subQueryList selector n = traverse query =<< queryList selector n