bs-atdgen-codec-runtimeis a bucklescript runtime for atdgen. It is based on the json type provided by bucklescript and combinators of @glennsl/bs-json.
yarn add @ahrefs/bs-atdgen-codec-runtime
This package doesn't take care of running atdgen to derive code from type definitions. This step requires the
atdgenbinary which can be obtained using opam or esy.
Alternatively, if your project is using BuckleScript exclusively (i.e. not using native OCaml or Reason in the backend), you might consider using
bs-atdgen-generatorin combination with this runtime library, in order to generate the
.atdsources without having to use native package managers like
To write atd type definitions, please have a look at the great atd documentation.
Simple exampleReason code to query and deserialize the response of a REST API. It requires
let get = (url, decode) => Js.Promise.( Fetch.fetchWithInit( url, Fetch.RequestInit.make(~method_=Get, ()), ) |> then_(Fetch.Response.json) |> then_(json => json |> decode |> resolve) ); let v: Meetup_t.events = get( "http://localhost:8000/events", Atdgen_codec_runtime.Decode.decode(Meetup_bs.read_events), );
Full exampleThe example directory contains a full example of a simple cli to read and write data in a JSON file.
For a complete introduction from atdgen installation to json manipulation, please refer to Getting started with atdgen and bucklescript.