@ahrefs/bs-atdgen-codec-runtime v2.2.0
bs-atdgen-codec-runtime
bs-atdgen-codec-runtime is a bucklescript runtime for
atdgen. It is based on the json type
provided by bucklescript and combinators of
@glennsl/bs-json.
Installation
yarn add @ahrefs/bs-atdgen-codec-runtimeThis package doesn't take care of running atdgen to derive code from
type definitions. This step requires the atdgen binary 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-generator in combination with
this runtime library, in order to generate the .ml and .mli files from .atd sources without having to use native
package managers like esy or opam.
Usage
Add @ahrefs/bs-atdgen-codec-runtime to the bs-dependencies of
bsconfig.json.
To write atd type definitions, please have a look at the great atd documentation.
Simple example
Reason code to query and deserialize the response of a REST API. It
requires bs-fetch.
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 example
The 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.