oas/generator/schema

This module builds ASTs from schemas. It does not do any file generation

Values

pub fn custom_type(
  name: String,
  properties: List(#(String, #(lift.Schema(Int), Bool))),
  additional: option.Option(lift.Schema(Int)),
  required: List(String),
  module: misc.Module,
) -> glance.CustomType

Generate a custom type from an object type. TODO make private

pub fn encode_fn(name: String) -> String
pub fn fields_to_encode_body(
  properties: List(#(String, #(lift.Schema(Int), Bool))),
  required: List(String),
  additional: option.Option(lift.Schema(Int)),
  module: misc.Module,
) -> glance.Expression
pub fn gen_top_decoder_needs_name(
  name: String,
  top: lift.Schema(lift.Fields),
  module: misc.Module,
) -> List(glance.Statement)
pub fn generate(
  schemas: dict.Dict(String, oas.Schema),
) -> #(
  List(glance.CustomType),
  List(glance.TypeAlias),
  List(glance.Function),
)

From a dictionary of schemas generate all custom types, type aliases, encoders and decoders.

pub fn to_decode_fn(
  entry: #(String, lift.Schema(lift.Fields)),
  module: misc.Module,
) -> glance.Function
pub fn to_decoder(
  lifted: lift.Schema(Int),
  module: misc.Module,
) -> glance.Expression
pub fn to_encode_fn(
  entry: #(String, lift.Schema(lift.Fields)),
  module: misc.Module,
) -> glance.Function

This handles top to encoder TODO make this private

pub fn to_encoder(
  lifted: lift.Schema(Int),
  module: misc.Module,
) -> glance.Expression

This handles a lifted encoder

Search Document