Skip to content

v11.0.0-alpha.7

Choose a tag to compare

@DZakh DZakh released this 31 May 19:39
· 8 commits to main since this release
05c37e6

Breaking Changes

  • S.nullable TS output type change from Output | undefined to Output | null by @DZakh in #251

Fixes

  • Fix setting a default value for an optional/nullable union schema by @DZakh in #256
  • Fix TS enum type widening to string when nested in another schema by @DZakh in #251
  • Fix TS S.merge type to preserve optional information on properties by @DZakh in #257

New ReScript PPX Features

Support schema modifiers on root record type declarations

@schema @s.strict
type t = {
  email: string,
  name: string,
}

By @DZakh in #249

Support polymorphic variants

@schema
type polyWithPayloads = [#one | #two(int) | #three(string, float) | #four({"foo": string})]

By @DZakh in #248

Support type parameters

@schema
type wrapper<'a> = {value: 'a}

@schema
type parent = {wrapped: wrapper<int>}

By @DZakh in #254

Internal Changes

  • Migrate from Js/Belt to Stdlib and modern ReScript v12 features by @DZakh in #247
  • Remove disabled compiler warnings 50 and 102 by @DZakh in #250
  • Configure infrastructure to run ppx in Claude.ai session by @DZakh in #258
  • Migrate test framework from AVA to Vitest by @DZakh in #253, #259
  • Add TS type instantiation benchmarks using ArkType's Attest by @DZakh in #260, #261

Full Changelog: v11.0.0-alpha.6...v11.0.0-alpha.7