Skip to content

Latest commit

 

History

History
42 lines (32 loc) · 1.27 KB

README.md

File metadata and controls

42 lines (32 loc) · 1.27 KB

sure

CI codecov docs

Type-safe value validation DSL for Kotlin Multiplatform.

Modules

  • :sure — KMP library (jvm, iosX64, iosArm64, iosSimulatorArm64). Core API: Validator<T>, ValidationScope, @Validatable, built-in checks.
  • :sure-ksp — KSP processor. Generates T.validate() extensions and validatorFor<T>() registry for every @Validatable class.

Usage

@Validatable
data class LoginRequest(val username: String, val password: String) {
  companion object {
    val validator = Validator<LoginRequest> {
      field(::username) { notBlank(); lengthIn(1..254) }
      field(::password) { notBlank(); lengthIn(8..1024) }
    }
  }
}

LoginRequest("alice", "hunter22!").validate() // ValidationResult.Valid

Consumer Gradle setup:

plugins {
  alias(libs.plugins.ksp)
}

dependencies {
  implementation("io.github.halotukozak:sure:0.1.0")
  ksp("io.github.halotukozak:sure-ksp:0.1.0")
}