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

package outwatchapp
import scala.util.Try
import colibri.LiftSink
import colibri.LiftSource
import colibri.ext.monix._
import monix.bio.Task
import monix.execution.Scheduler
import monix.reactive.Observable
import monix.reactive.Observer
import org.scalajs.dom.raw.HTMLElement
import typings.sweetalert2.mod.SweetAlertOptions
import typings.sweetalert2.mod.{default => Swal}
import scalajs.js.|
package object implicits {
// implicit def sinkForMyMonixProSub[A, M] =
// new Sink[MonixProSubject[A, M]] {}\
// implicit val monixCreateProSubject = new CreateProSubject[MonixProSubject] {
// @inline def from[SI[_]: Sink, SO[_]: Source, I, O](
// sink: SI[I],
// source: SO[O]
// ): MonixProSubject[I, O] = MonixProSubject.from(
// LiftSink[Observer].lift(sink),
// LiftSource[Observable].lift(source)
// )
// }
implicit class Ops[A](val sink: Observer[A]) extends AnyVal {
@inline def liftSink[G[_]: LiftSink]: G[A] = LiftSink[G].lift(sink)
}
implicit class Ops2[A](val source: Observable[A]) extends AnyVal {
@inline def liftSource[G[_]: LiftSource](implicit s: Scheduler): G[A] =
LiftSource[G].lift(source)
}
implicit class HTMLElementOps[T <: HTMLElement](private val el: T)
extends AnyVal {
def asST = el.asInstanceOf[typings.std.HTMLElement]
}
implicit class SweetAlertOps(private val sw: Swal.type) extends AnyVal {
def fireL[T](options: SweetAlertOptions[T, _]) =
Task.deferFuture(sw.fire(options).toFuture)
}
implicit class NullUnionOps[A, B](private val union: A | B) extends AnyVal {
@scala.inline
def asOption(implicit ev: B =:= scala.Null) = Try(
union.asInstanceOf[A]
).toOption
}
}