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.
51 lines
1.2 KiB
51 lines
1.2 KiB
import mill._, scalalib._, scalafmt._
|
|
|
|
trait ServerModule extends ScalaModule with ScalafmtModule {
|
|
|
|
//override def scalacOptions = Seq("-explain")
|
|
|
|
override final def scalaVersion = "3.2.0"
|
|
override def ivyDeps = Agg(
|
|
ivy"dev.zio::zio:2.0.6",
|
|
ivy"org.apache.logging.log4j:log4j-slf4j-impl:2.19.0"
|
|
)
|
|
}
|
|
trait HttpModule extends ServerModule {
|
|
override def ivyDeps = super.ivyDeps() ++ Agg(
|
|
ivy"dev.zio::zio-http:0.0.3",
|
|
ivy"dev.zio::zio-json:0.4.2",
|
|
ivy"dev.zio::zio-streams:2.0.6"
|
|
)
|
|
}
|
|
|
|
/**
|
|
* Simple module whose only job is to generate JWT Tokens
|
|
* */
|
|
object JWTEmitter extends HttpModule
|
|
|
|
/**
|
|
* module that handles the REST API endpoint
|
|
* */
|
|
object Endpoint extends HttpModule
|
|
|
|
/**
|
|
* Business layer of a server
|
|
* */
|
|
object Core extends ServerModule {
|
|
override def ivyDeps = super.ivyDeps() ++ Agg(
|
|
ivy"dev.zio::zio-json:0.4.2",
|
|
)
|
|
|
|
override def moduleDeps = Seq(Endpoint, DB)
|
|
}
|
|
|
|
/**
|
|
* Database module
|
|
* */
|
|
object DB extends ServerModule {
|
|
override def ivyDeps = super.ivyDeps() ++ Agg(
|
|
ivy"io.getquill::quill-jdbc-zio:4.6.0",
|
|
|
|
ivy"org.xerial:sqlite-jdbc:3.40.0.0",
|
|
)
|
|
} |