Page
Library
Module
Module type
Parameter
Class
Class type
Source
melange-atdgen-codec-runtime
is a Melange runtime for atdgen. It is based on the json type provided by bucklescript and combinators of melange-json.
Install opam package manager.
Then:
opam pin add melange-atdgen-codec-runtime.dev git+https://github.com/ahrefs/melange-atdgen-codec-runtime.git#master
To generate ml
files from atd
ones, add a couple of rules to your dune
file:
(rule
(targets test_bs.ml test_bs.mli)
(deps test.atd)
(action
(run atdgen -bs %{deps})))
(rule
(targets test_t.ml test_t.mli)
(deps test.atd)
(action
(run atdgen -t %{deps})))
You can see examples in the tests or the example.
To use the generated modules, you will need to include the runtime library in your project. To do so, add melange-atdgen-codec-runtime
to the libraries
field in your dune
file:
; ...
(libraries melange-atdgen-codec-runtime)
; ...
To write atd type definitions, please have a look at the great atd documentation.
Reason code to query and deserialize the response of a REST API. It requires melange-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),
);
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.