Refactored reactive store
This commit is contained in:
parent
f721768098
commit
9155fdac96
@ -10,13 +10,13 @@ import io.odin.syntax._
|
|||||||
import nova.monadic_sfx.actors.ActorModule
|
import nova.monadic_sfx.actors.ActorModule
|
||||||
import nova.monadic_sfx.http.HttpModule
|
import nova.monadic_sfx.http.HttpModule
|
||||||
import nova.monadic_sfx.ui.UiModule
|
import nova.monadic_sfx.ui.UiModule
|
||||||
import nova.monadic_sfx.util.reactive.Middlewares
|
import nova.monadic_sfx.util.reactive.store.Middlewares
|
||||||
|
|
||||||
trait MainModule extends ActorModule with UiModule with HttpModule {
|
trait MainModule extends ActorModule with UiModule with HttpModule {
|
||||||
def routerLogger(defaultLogger: Logger[Task], storeLogger: Logger[Task]) =
|
def routerLogger(defaultLogger: Logger[Task], storeLogger: Logger[Task]) =
|
||||||
enclosureRouting[Task](
|
enclosureRouting[Task](
|
||||||
"nova.monadic_sfx.util.reactive.Middlewares" -> storeLogger,
|
"nova.monadic_sfx.util.reactive.store.Middlewares" -> storeLogger,
|
||||||
"nova.monadic_sfx.util.reactive.Store" -> storeLogger
|
"nova.monadic_sfx.util.reactive.store.Store" -> storeLogger
|
||||||
)
|
)
|
||||||
.withFallback(defaultLogger)
|
.withFallback(defaultLogger)
|
||||||
.withAsync(timeWindow = 1.millis)
|
.withAsync(timeWindow = 1.millis)
|
||||||
|
@ -8,9 +8,9 @@ import io.circe.generic.semiauto._
|
|||||||
import io.odin.Logger
|
import io.odin.Logger
|
||||||
import monix.bio.Task
|
import monix.bio.Task
|
||||||
import nova.monadic_sfx.util.IOUtils
|
import nova.monadic_sfx.util.IOUtils
|
||||||
import nova.monadic_sfx.util.reactive.Middlewares
|
import nova.monadic_sfx.util.reactive.store.Middlewares
|
||||||
import nova.monadic_sfx.util.reactive.Reducer
|
import nova.monadic_sfx.util.reactive.store.Reducer
|
||||||
import nova.monadic_sfx.util.reactive.Store
|
import nova.monadic_sfx.util.reactive.store.Store
|
||||||
import scalafx.scene.Parent
|
import scalafx.scene.Parent
|
||||||
|
|
||||||
object FXRouter {
|
object FXRouter {
|
||||||
|
@ -14,7 +14,7 @@ import nova.monadic_sfx.implicits.FontIcon
|
|||||||
import nova.monadic_sfx.implicits.IconLiteral
|
import nova.monadic_sfx.implicits.IconLiteral
|
||||||
import nova.monadic_sfx.implicits.JFXListView
|
import nova.monadic_sfx.implicits.JFXListView
|
||||||
import nova.monadic_sfx.implicits._
|
import nova.monadic_sfx.implicits._
|
||||||
import nova.monadic_sfx.util.reactive._
|
import nova.monadic_sfx.util.reactive.store._
|
||||||
import scalafx.Includes._
|
import scalafx.Includes._
|
||||||
import scalafx.beans.property.StringProperty
|
import scalafx.beans.property.StringProperty
|
||||||
import scalafx.collections.ObservableBuffer
|
import scalafx.collections.ObservableBuffer
|
||||||
|
@ -4,9 +4,9 @@ import com.softwaremill.quicklens._
|
|||||||
import io.circe.generic.JsonCodec
|
import io.circe.generic.JsonCodec
|
||||||
import io.odin.Logger
|
import io.odin.Logger
|
||||||
import monix.bio.Task
|
import monix.bio.Task
|
||||||
import nova.monadic_sfx.util.reactive.Middlewares.actionLoggerMiddleware
|
import nova.monadic_sfx.util.reactive.store.Middlewares.actionLoggerMiddleware
|
||||||
import nova.monadic_sfx.util.reactive.Reducer
|
import nova.monadic_sfx.util.reactive.store.Reducer
|
||||||
import nova.monadic_sfx.util.reactive.Store
|
import nova.monadic_sfx.util.reactive.store.Store
|
||||||
|
|
||||||
case class Todo(id: Int, content: String)
|
case class Todo(id: Int, content: String)
|
||||||
|
|
||||||
|
@ -10,7 +10,7 @@ import nova.monadic_sfx.implicits.JFXListView
|
|||||||
import nova.monadic_sfx.implicits.JFXTextField
|
import nova.monadic_sfx.implicits.JFXTextField
|
||||||
import nova.monadic_sfx.implicits.MenuItem
|
import nova.monadic_sfx.implicits.MenuItem
|
||||||
import nova.monadic_sfx.implicits._
|
import nova.monadic_sfx.implicits._
|
||||||
import nova.monadic_sfx.util.reactive._
|
import nova.monadic_sfx.util.reactive.store._
|
||||||
import org.gerweck.scalafx.util._
|
import org.gerweck.scalafx.util._
|
||||||
import scalafx.Includes._
|
import scalafx.Includes._
|
||||||
import scalafx.beans.property.ObjectProperty
|
import scalafx.beans.property.ObjectProperty
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
package nova.monadic_sfx.util.reactive
|
package nova.monadic_sfx.util.reactive.store
|
||||||
|
|
||||||
import java.time.LocalDateTime
|
import java.time.LocalDateTime
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package nova.monadic_sfx.util.reactive
|
package nova.monadic_sfx.util.reactive.store
|
||||||
|
|
||||||
import scala.concurrent.Future
|
import scala.concurrent.Future
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package nova.monadic_sfx.util.reactive
|
package nova.monadic_sfx.util.reactive.store
|
||||||
|
|
||||||
import cats.implicits._
|
import cats.implicits._
|
||||||
import monix.reactive.Observable
|
import monix.reactive.Observable
|
@ -1,4 +1,4 @@
|
|||||||
package nova.monadic_sfx.util.reactive
|
package nova.monadic_sfx.util.reactive.store
|
||||||
|
|
||||||
import java.time.LocalDateTime
|
import java.time.LocalDateTime
|
||||||
|
|
@ -1,9 +1,9 @@
|
|||||||
package nova.monadic_sfx.util
|
package nova.monadic_sfx.util.reactive
|
||||||
|
|
||||||
import monix.reactive.Observable
|
import monix.reactive.Observable
|
||||||
import monix.reactive.Observer
|
import monix.reactive.Observer
|
||||||
|
|
||||||
package object reactive {
|
package object store {
|
||||||
type MonixProSubject[-I, +O] = Observable[O] with Observer[I]
|
type MonixProSubject[-I, +O] = Observable[O] with Observer[I]
|
||||||
type Middleware[A, M] = Observable[(A, M)] => Observable[(A, M)]
|
type Middleware[A, M] = Observable[(A, M)] => Observable[(A, M)]
|
||||||
type Store[A, M] = MonixProSubject[A, (A, M)]
|
type Store[A, M] = MonixProSubject[A, (A, M)]
|
Loading…
Reference in New Issue
Block a user