You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

53 lines
1.7 KiB

3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
  1. package outwatchapp
  2. import scala.util.Try
  3. import colibri.LiftSink
  4. import colibri.LiftSource
  5. import colibri.ext.monix._
  6. import monix.bio.Task
  7. import monix.execution.Scheduler
  8. import monix.reactive.Observable
  9. import monix.reactive.Observer
  10. import org.scalajs.dom.raw.HTMLElement
  11. import typings.sweetalert2.mod.SweetAlertOptions
  12. import typings.sweetalert2.mod.{default => Swal}
  13. import scalajs.js.|
  14. package object implicits {
  15. // implicit def sinkForMyMonixProSub[A, M] =
  16. // new Sink[MonixProSubject[A, M]] {}\
  17. // implicit val monixCreateProSubject = new CreateProSubject[MonixProSubject] {
  18. // @inline def from[SI[_]: Sink, SO[_]: Source, I, O](
  19. // sink: SI[I],
  20. // source: SO[O]
  21. // ): MonixProSubject[I, O] = MonixProSubject.from(
  22. // LiftSink[Observer].lift(sink),
  23. // LiftSource[Observable].lift(source)
  24. // )
  25. // }
  26. implicit class Ops[A](val sink: Observer[A]) extends AnyVal {
  27. @inline def liftSink[G[_]: LiftSink]: G[A] = LiftSink[G].lift(sink)
  28. }
  29. implicit class Ops2[A](val source: Observable[A]) extends AnyVal {
  30. @inline def liftSource[G[_]: LiftSource](implicit s: Scheduler): G[A] =
  31. LiftSource[G].lift(source)
  32. }
  33. implicit class HTMLElementOps[T <: HTMLElement](private val el: T)
  34. extends AnyVal {
  35. def asST = el.asInstanceOf[typings.std.HTMLElement]
  36. }
  37. implicit class SweetAlertOps(private val sw: Swal.type) extends AnyVal {
  38. def fireL[T](options: SweetAlertOptions[T, _]) =
  39. Task.deferFuture(sw.fire(options).toFuture)
  40. }
  41. implicit class NullUnionOps[A, B](private val union: A | B) extends AnyVal {
  42. @scala.inline
  43. def asOption(implicit ev: B =:= scala.Null) = Try(
  44. union.asInstanceOf[A]
  45. ).toOption
  46. }
  47. }