Skip to content

Commit 3bd3c43

Browse files
Merge pull request #4 from LedgerHQ/update/multiple_libraries
update scala, circe-yaml, tapir and iron.
2 parents d448987 + 38cdfbe commit 3bd3c43

File tree

22 files changed

+181
-168
lines changed

22 files changed

+181
-168
lines changed

.g8/module/modules/$moduleFolder$/src/main/scala/pillars/$package$/$Prefix$Loader.scala

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ final case class $Prefix$(client: $Prefix$Client) extends Module:
3838
val probe = new Probe:
3939
override def component: Component =
4040
Component(Component.Name("$lowerCaseModuleName$"), Component.Type.Datastore)
41-
override def check: IO[Boolean] = true.pure[IO]
41+
override def check: IO[Boolean] = true.pure[IO]
4242
probe.pure[List]
4343
end probes
4444
end $Prefix$
@@ -83,10 +83,10 @@ object $Prefix$Config:
8383
given Codec[$Prefix$Config] = Codec.AsObject.derivedConfigured
8484
end $Prefix$Config
8585

86-
private type $Prefix$UserConstraint = Not[Blank] DescribedAs "$Prefix$ user must not be blank"
87-
opaque type $Prefix$User <: String = String :| $Prefix$UserConstraint
88-
object $Prefix$User extends RefinedTypeOps[String, $Prefix$UserConstraint, $Prefix$User]
86+
private type $Prefix$UserConstraint = Not[Blank] `DescribedAs` "$Prefix$ user must not be blank"
87+
type $Prefix$User = $Prefix$User.T
88+
object $Prefix$User extends RefinedType[String, $Prefix$UserConstraint]
8989

90-
private type $Prefix$PasswordConstraint = Not[Blank] DescribedAs "$Prefix$ password must not be blank"
91-
opaque type $Prefix$Password <: String = String :| $Prefix$PasswordConstraint
92-
object $Prefix$Password extends RefinedTypeOps[String, $Prefix$PasswordConstraint, $Prefix$Password]
90+
private type $Prefix$PasswordConstraint = Not[Blank] `DescribedAs` "$Prefix$ password must not be blank"
91+
type $Prefix$Password = $Prefix$Password.T
92+
object $Prefix$Password extends RefinedType[String, $Prefix$PasswordConstraint]

modules/core/src/main/scala/pillars/Config.scala

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -101,8 +101,9 @@ object Config:
101101
case ParsingError(cause: Throwable) extends ConfigError(ErrorNumber(2))
102102

103103
override def message: Message = this match
104-
case ConfigError.MissingEnvironmentVariable(name) => Message(s"Missing environment variable $name".assume)
104+
case ConfigError.MissingEnvironmentVariable(name) =>
105+
Message.assume(s"Missing environment variable $name")
105106
case ConfigError.ParsingError(cause) =>
106-
Message(s"Failed to parse configuration: ${cause.getMessage}".assume)
107+
Message.assume(s"Failed to parse configuration: ${cause.getMessage}")
107108
end ConfigError
108109
end Config

modules/core/src/main/scala/pillars/HttpServer.scala

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,9 @@ object HttpServer:
8585
yamlName = openApi.yamlName,
8686
contextPath = openApi.contextPath,
8787
useRelativePaths = openApi.useRelativePaths,
88-
showExtensions = openApi.showExtensions
88+
showExtensions = openApi.showExtensions,
89+
initializerOptions = openApi.initializerOptions,
90+
oAuthInitOptions = openApi.oAuthInitOptions
8991
)
9092
).fromServerEndpoints(endpoints, name, infos.version)
9193
else Nil
@@ -137,7 +139,9 @@ object HttpServer:
137139
yamlName: String = "pillars.yaml",
138140
contextPath: List[String] = Nil,
139141
useRelativePaths: Boolean = true,
140-
showExtensions: Boolean = false
142+
showExtensions: Boolean = false,
143+
initializerOptions: Option[Map[String, String]] = None,
144+
oAuthInitOptions: Option[Map[String, String]] = None
141145
)
142146
end Config
143147
end HttpServer

modules/core/src/main/scala/pillars/Logging.scala

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,10 @@ object Logging:
3939
case Format.Json => ScribeCirceJsonSupport.writer(config.output.writer)
4040
case _ => config.output.writer
4141

42-
private type BufferSizeConstraint = Positive DescribedAs "Buffer size should be positive"
43-
opaque type BufferSize <: Int = Int :| BufferSizeConstraint
42+
private type BufferSizeConstraint = Positive `DescribedAs` "Buffer size should be positive"
43+
type BufferSize = BufferSize.T
4444

45-
object BufferSize extends RefinedTypeOps[Int, BufferSizeConstraint, BufferSize]
45+
object BufferSize extends RefinedType[Int, BufferSizeConstraint]
4646

4747
enum Format:
4848
case Json

modules/core/src/main/scala/pillars/Observability.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -106,8 +106,8 @@ object Observability:
106106
end Config
107107

108108
private type ServiceNameConstraint = Not[Blank]
109-
opaque type ServiceName <: String = String :| ServiceNameConstraint
110-
private object ServiceName extends RefinedTypeOps[String, ServiceNameConstraint, ServiceName]
109+
type ServiceName = ServiceName.T
110+
object ServiceName extends RefinedType[String, ServiceNameConstraint]
111111

112112
extension [A <: String](value: A)
113113
def toAttribute(name: String): Attribute[String] = Attribute(name, value)

modules/core/src/main/scala/pillars/PillarsError.scala

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -54,23 +54,23 @@ object PillarsError:
5454
private[pillars] final case class PayloadTooLarge(maxLength: Long) extends PillarsError:
5555
override def code: Code = Code("ERR")
5656
override def number: ErrorNumber = ErrorNumber(Int.MaxValue)
57-
override def message: Message = Message(s"Payload limit ($maxLength) exceeded".refineUnsafe)
57+
override def message: Message = Message.assume(s"Payload limit ($maxLength) exceeded")
5858
override def status: StatusCode = StatusCode.PayloadTooLarge
5959
override def details: Option[String] = Some(s"Payload limit ($maxLength) exceeded")
6060
end PayloadTooLarge
6161

62-
private type CodeConstraint = (Not[Empty] & LettersUpperCase) DescribedAs "Code cannot be empty"
63-
opaque type Code <: String = String :| CodeConstraint
62+
private type CodeConstraint = (Not[Empty] & LettersUpperCase) `DescribedAs` "Code cannot be empty"
63+
type Code = Code.T
6464

65-
object Code extends RefinedTypeOps[String, CodeConstraint, Code]
65+
object Code extends RefinedType[String, CodeConstraint]
6666

67-
private type MessageConstraint = Not[Empty] DescribedAs "Message cannot be empty"
68-
opaque type Message <: String = String :| MessageConstraint
67+
private type MessageConstraint = Not[Empty] `DescribedAs` "Message cannot be empty"
68+
type Message = Message.T
6969

70-
object Message extends RefinedTypeOps[String, MessageConstraint, Message]
70+
object Message extends RefinedType[String, MessageConstraint]
7171

72-
private type ErrorNumberConstraint = Positive DescribedAs "Number must be strictly positive"
73-
opaque type ErrorNumber <: Int = Int :| ErrorNumberConstraint
72+
private type ErrorNumberConstraint = Positive `DescribedAs` "Number must be strictly positive"
73+
type ErrorNumber = ErrorNumber.T
7474

75-
object ErrorNumber extends RefinedTypeOps[Int, ErrorNumberConstraint, ErrorNumber]
75+
object ErrorNumber extends RefinedType[Int, ErrorNumberConstraint]
7676
end PillarsError

modules/core/src/main/scala/pillars/app.scala

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -40,22 +40,25 @@ abstract class IOApp(override val modules: ModuleSupport*) extends App(modules*)
4040

4141
object App:
4242
private type NameConstraint = Not[Blank]
43-
opaque type Name <: String = String :| NameConstraint
44-
object Name extends RefinedTypeOps[String, NameConstraint, Name]
43+
type Name = Name.T
44+
object Name extends RefinedType[String, NameConstraint]
4545

4646
private type VersionConstraint = SemanticVersion
47-
opaque type Version <: String = String :| VersionConstraint
48-
object Version extends RefinedTypeOps[String, VersionConstraint, Version]
47+
type Version = Version.T
48+
object Version extends RefinedType[String, VersionConstraint]
4949

5050
private type DescriptionConstraint = Not[Blank]
51-
opaque type Description <: String = String :| DescriptionConstraint
52-
object Description extends RefinedTypeOps[String, DescriptionConstraint, Description]
51+
type Description = Description.T
52+
object Description extends RefinedType[String, DescriptionConstraint]
53+
def apply(value: String): Description = value.asInstanceOf[Description]
54+
def unapply(description: Description): String = description.asInstanceOf[String]
55+
def assume(description: Description): String = description.asInstanceOf[String]
5356
end App
5457

5558
case class AppInfo(name: App.Name, version: App.Version, description: App.Description)
5659
trait BuildInfo:
5760
def name: String
5861
def version: String
5962
def description: String
60-
def toAppInfo: AppInfo = AppInfo(Name(name.assume), Version(version.assume), Description(description.assume))
63+
def toAppInfo: AppInfo = AppInfo(Name.assume(name), Version.assume(version), Description.assume(description))
6164
end BuildInfo

modules/core/src/main/scala/pillars/graph.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ object graph:
5151
override def message: Message = this match
5252
case GraphError.CyclicDependencyError => Message("Cyclic dependency found")
5353
case GraphError.MissingDependency(missing) =>
54-
if missing.size == 1 then Message(s"Missing dependency: ${missing.head}".assume)
55-
else Message(s"${missing.size} missing dependencies: ${missing.mkString(", ")}".assume)
54+
if missing.size == 1 then Message.assume(s"Missing dependency: ${missing.head}")
55+
else Message.assume(s"${missing.size} missing dependencies: ${missing.mkString(", ")}")
5656
end GraphError
5757
end graph

modules/core/src/main/scala/pillars/probes.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@ object probes:
3131

3232
object Component:
3333
private type NameConstraint = Not[Blank] & Not[Contain[":"]]
34-
opaque type Name <: String = String :| NameConstraint
35-
object Name extends RefinedTypeOps[String, NameConstraint, Name]
34+
type Name = Name.T
35+
object Name extends RefinedType[String, NameConstraint]
3636

3737
enum Type:
3838
case System, Datastore, Component

modules/db-doobie-tests/src/main/scala/pillars/db_doobie/tests/DB.scala

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,10 @@ case class DB(container: JdbcDatabaseContainer) extends ModuleSupport:
2525

2626
private def dbConfig: DatabaseConfig =
2727
DatabaseConfig(
28-
driverClassName = DriverClassName(container.driverClassName.assume),
29-
url = JdbcUrl(container.jdbcUrl.assume),
30-
username = DatabaseUser(container.username.assume),
31-
password = Secret(DatabasePassword(container.password.assume)),
28+
driverClassName = DriverClassName.assume(container.driverClassName),
29+
url = JdbcUrl.assume(container.jdbcUrl),
30+
username = DatabaseUser.assume(container.username),
31+
password = Secret(DatabasePassword.assume(container.password)),
3232
probe = ProbeConfig()
3333
)
3434
end DB

0 commit comments

Comments
 (0)