kata_json

kata_json — JSON adapter for kata.

Installation

gleam add kata_json

Quick Start

import kata/schema
import kata/refine
import kata_json

pub type User {
  User(name: String, email: String, age: Int)
}

fn user_schema() -> schema.Schema(User) {
  use name <- schema.field("name", schema.string() |> refine.min_length(1), fn(u: User) { u.name })
  use email <- schema.field("email", schema.string(), fn(u: User) { u.email })
  use age <- schema.field("age", schema.int() |> refine.min(0), fn(u: User) { u.age })
  schema.done(User(name:, email:, age:))
}

// Decode from JSON
let assert Ok(user) = kata_json.decode_json(user_schema(), "{\"name\":\"Alice\",\"email\":\"a@b.com\",\"age\":30}")

// Encode to JSON
let json = kata_json.encode_json(user_schema(), User("Alice", "a@b.com", 30))
// -> "{\"name\":\"Alice\",\"email\":\"a@b.com\",\"age\":30}"

API

Development

gleam test  # Run the tests