Skip to content

Commit

Permalink
Update examples
Browse files Browse the repository at this point in the history
  • Loading branch information
chenglou committed May 27, 2018
1 parent 4376be3 commit 5d217aa
Show file tree
Hide file tree
Showing 4 changed files with 28 additions and 65 deletions.
12 changes: 3 additions & 9 deletions examples/ocaml_examples.ml
@@ -1,9 +1,3 @@
module Option = struct
let unwrapUnsafely = function
| Some v -> v
| None -> raise (Invalid_argument "unwrapUnsafely called on None");
end

let _ =
Js.Promise.(
Fetch.fetch "/api/hellos/1"
Expand All @@ -24,11 +18,11 @@ let _ =
(* assume server returns `["apple", "banana", "pear", ...]` *)
|> then_ Fetch.Response.json
|> then_ (fun json -> Js.Json.decodeArray json |> resolve)
|> then_ (fun opt -> Option.unwrapUnsafely opt |> resolve)
|> then_ (fun opt -> Belt.Option.getExn opt |> resolve)
|> then_ (fun items ->
items |> Js.Array.map (fun item ->
item |> Js.Json.decodeString
|> Option.unwrapUnsafely)
|> Belt.Option.getExn)
|> resolve)
)

Expand All @@ -42,4 +36,4 @@ let _ =
(Js.Json.stringify (Js.Json.object_ payload)))
~headers:(Fetch.HeadersInit.makeWithDict (Js.Dict.fromList [
("Content-Type", "application/json")])) ()))
|> (then_ Fetch.Response.json)
|> (then_ Fetch.Response.json)
41 changes: 19 additions & 22 deletions examples/reason_examples.re
@@ -1,37 +1,33 @@
module Option = {
let unwrapUnsafely = (data) =>
switch data {
| Some(v) => v
| None => raise(Invalid_argument("unwrapUnsafely called on None"))
};
};

let _ =
Js.Promise.(
Fetch.fetch("/api/hellos/1")
|> then_(Fetch.Response.text)
|> then_((text) => print_endline(text) |> resolve)
|> then_(text => print_endline(text) |> resolve)
);

let _ =
Js.Promise.(
Fetch.fetchWithInit("/api/hello", Fetch.RequestInit.make(~method_=Post, ()))
Fetch.fetchWithInit(
"/api/hello",
Fetch.RequestInit.make(~method_=Post, ()),
)
|> then_(Fetch.Response.text)
|> then_((text) => print_endline(text) |> resolve)
|> then_(text => print_endline(text) |> resolve)
);

let _ =
Js.Promise.(
Fetch.fetch("/api/fruit")
/* assume server returns `["apple", "banana", "pear", ...]` */
|> then_(Fetch.Response.json)
|> then_((json) => Js.Json.decodeArray(json) |> resolve)
|> then_((opt) => Option.unwrapUnsafely(opt) |> resolve)
|> then_(
(items) =>
items
|> Js.Array.map((item) => item |> Js.Json.decodeString |> Option.unwrapUnsafely)
|> resolve
|> then_(json => Js.Json.decodeArray(json) |> resolve)
|> then_(opt => Belt.Option.getExn(opt) |> resolve)
|> then_(items =>
items
|> Js.Array.map(item =>
item |> Js.Json.decodeString |> Belt.Option.getExn
)
|> resolve
)
);

Expand All @@ -44,11 +40,12 @@ let _ = {
"/api/hello",
Fetch.RequestInit.make(
~method_=Post,
~body=Fetch.BodyInit.make(Js.Json.stringify(Js.Json.object_(payload))),
~body=
Fetch.BodyInit.make(Js.Json.stringify(Js.Json.object_(payload))),
~headers=Fetch.HeadersInit.make({"Content-Type": "application/json"}),
()
)
(),
),
)
|> then_(Fetch.Response.json)
);
};
};
20 changes: 3 additions & 17 deletions lib/js/examples/ocaml_examples.js
Expand Up @@ -3,20 +3,7 @@
var Fetch = require("../src/Fetch.js");
var Js_dict = require("bs-platform/lib/js/js_dict.js");
var Js_json = require("bs-platform/lib/js/js_json.js");
var Caml_builtin_exceptions = require("bs-platform/lib/js/caml_builtin_exceptions.js");

function unwrapUnsafely(param) {
if (param) {
return param[0];
} else {
throw [
Caml_builtin_exceptions.invalid_argument,
"unwrapUnsafely called on None"
];
}
}

var Option = /* module */[/* unwrapUnsafely */unwrapUnsafely];
var Belt_Option = require("bs-platform/lib/js/belt_Option.js");

fetch("/api/hellos/1").then((function (prim) {
return prim.text();
Expand All @@ -35,10 +22,10 @@ fetch("/api/fruit").then((function (prim) {
})).then((function (json) {
return Promise.resolve(Js_json.decodeArray(json));
})).then((function (opt) {
return Promise.resolve(unwrapUnsafely(opt));
return Promise.resolve(Belt_Option.getExn(opt));
})).then((function (items) {
return Promise.resolve(items.map((function (item) {
return unwrapUnsafely(Js_json.decodeString(item));
return Belt_Option.getExn(Js_json.decodeString(item));
})));
}));

Expand All @@ -56,5 +43,4 @@ fetch("/api/hello", Fetch.RequestInit[/* make */0](/* Some */[/* Post */2], /* S
return prim.json();
}));

exports.Option = Option;
/* Not a pure module */
20 changes: 3 additions & 17 deletions lib/js/examples/reason_examples.js
Expand Up @@ -2,20 +2,7 @@

var Fetch = require("../src/Fetch.js");
var Js_json = require("bs-platform/lib/js/js_json.js");
var Caml_builtin_exceptions = require("bs-platform/lib/js/caml_builtin_exceptions.js");

function unwrapUnsafely(data) {
if (data) {
return data[0];
} else {
throw [
Caml_builtin_exceptions.invalid_argument,
"unwrapUnsafely called on None"
];
}
}

var Option = /* module */[/* unwrapUnsafely */unwrapUnsafely];
var Belt_Option = require("bs-platform/lib/js/belt_Option.js");

fetch("/api/hellos/1").then((function (prim) {
return prim.text();
Expand All @@ -34,10 +21,10 @@ fetch("/api/fruit").then((function (prim) {
})).then((function (json) {
return Promise.resolve(Js_json.decodeArray(json));
})).then((function (opt) {
return Promise.resolve(unwrapUnsafely(opt));
return Promise.resolve(Belt_Option.getExn(opt));
})).then((function (items) {
return Promise.resolve(items.map((function (item) {
return unwrapUnsafely(Js_json.decodeString(item));
return Belt_Option.getExn(Js_json.decodeString(item));
})));
}));

Expand All @@ -51,5 +38,4 @@ fetch("/api/hello", Fetch.RequestInit[/* make */0](/* Some */[/* Post */2], /* S
return prim.json();
}));

exports.Option = Option;
/* Not a pure module */

0 comments on commit 5d217aa

Please sign in to comment.