Skip to content

Commit 31024a0

Browse files
committed
Refactor spinner creation to simplify SpinnerHandle[cats.Id] to SpinnerNoFx
- Also update the example with `SpinnerNoFx` - Add Scala cross-version build
1 parent 0c12b54 commit 31024a0

6 files changed

Lines changed: 145 additions & 191 deletions

File tree

build.sbt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,8 @@ ThisBuild / scmInfo :=
2121

2222
lazy val root = (project in file("."))
2323
.settings(
24-
name := props.ProjectName
24+
name := props.ProjectName,
25+
crossScalaVersions := props.CrossScalaVersions,
2526
)
2627
.settings(noPublish)
2728
.aggregate(
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package just
2+
3+
/** @author Kevin Lee
4+
* @since 2026-03-28
5+
*/
6+
package object spinner {
7+
type SpinnerNoFx = SpinnerHandle[cats.Id]
8+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package just.spinner
2+
3+
/** @author Kevin Lee
4+
* @since 2026-03-28
5+
*/
6+
type SpinnerNoFx = SpinnerHandle[cats.Id]

modules/core/shared/src/main/scala/just/spinner/Spinner.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ object Spinner {
3333
): F[SpinnerHandle[F]] =
3434
SpinnerHandle[F](config, output, timer, mkRef)
3535

36-
def createDefaultSideEffect(config: SpinnerConfig): SpinnerHandle[cats.Id] = {
36+
def createDefaultSideEffect(config: SpinnerConfig): SpinnerNoFx = {
3737
import effectie.instances.id.fx.idFx
3838
create[cats.Id](config, TerminalOutput.stderr[cats.Id], SpinnerTimer.create, SpinnerRefMaker.atomicRef[cats.Id])
3939
}

modules/example-js/src/main/scala/example/Main.scala

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
package example
22

3-
import cats.Id
4-
import effectie.instances.id.fx._
5-
import just.spinner._
3+
import just.spinner.*
64

75
import scala.concurrent.{Future, Promise}
86
import scala.concurrent.ExecutionContext.Implicits.global
@@ -18,8 +16,8 @@ object Main {
1816
p.future
1917
}
2018

21-
private def createSpinner(config: SpinnerConfig): SpinnerHandle[Id] =
22-
Spinner.create[Id](config, TerminalOutput.stderr[Id], SpinnerTimer.create, SpinnerRefMaker.atomicRef[Id])
19+
private def createSpinner(config: SpinnerConfig): SpinnerNoFx =
20+
Spinner.createDefaultSideEffect(config)
2321

2422
private def scenario1(): Future[Unit] = {
2523
println("\n=== Scenario 1: Basic spinner with succeed ===")

0 commit comments

Comments
 (0)