diff --git a/esy.json b/esy.json index 91d0570..ca0c4ee 100644 --- a/esy.json +++ b/esy.json @@ -1,5 +1,5 @@ { - "name": "fetch", + "name": "reason-fetch", "version": "0.1.0", "description": "Fetch libraries and interface for ReasonML/OCaml", "license": "MIT", @@ -12,15 +12,15 @@ ] }, "scripts": { - "example": "esy refmterr dune exec examples/fetch_native_lwt_get.exe", + "example:native-lwt": "esy refmterr dune exec examples/fetch-native-lwt/get.exe", "format": "esy dune build @fmt --auto-promote", "test": "esy dune runtest test", "contributors:add": "all-contributors add", "contributors:generate": "all-contributors generate" }, "dependencies": { - "fetch-native-lwt": "*", "fetch-core": "*", + "fetch-native-lwt": "*", "@opam/dune": "^1.11.1", "@opam/opium_core": "rgrinberg/opium:opium_core.opam", "@opam/reason": "^3.5.0", diff --git a/esy.lock/index.json b/esy.lock/index.json index dc3680f..39f7b35 100644 --- a/esy.lock/index.json +++ b/esy.lock/index.json @@ -1,6 +1,6 @@ { "checksum": "7d7a3596d537722c8ea5154a3e4bb7e6", - "root": "fetch@link-dev:./esy.json", + "root": "reason-fetch@link-dev:./esy.json", "node": { "yarn-pkg-config@github:esy-ocaml/yarn-pkg-config#cca65f99674ed2d954d28788edeb8c57fada5ed0@d41d8cd9": { "id": @@ -513,6 +513,30 @@ ], "devDependencies": [] }, + "reason-fetch@link-dev:./esy.json": { + "id": "reason-fetch@link-dev:./esy.json", + "name": "reason-fetch", + "version": "link-dev:./esy.json", + "source": { "type": "link-dev", "path": ".", "manifest": "esy.json" }, + "overrides": [], + "dependencies": [ + "ocaml@4.7.1004@d41d8cd9", + "fetch-native-lwt@link:./fetch-native-lwt.json", + "fetch-core@link:./fetch-core.json", + "@reason-native-web/morph_client@0.1.1@d41d8cd9", + "@opam/reason@opam:3.5.0@40205ac4", + "@opam/opium_core@github:rgrinberg/opium:opium_core.opam#287b83f85bcf6c75d503b1edab77c7ec524f9090@d41d8cd9", + "@opam/dune@opam:1.11.3@9894df55" + ], + "devDependencies": [ + "refmterr@3.2.2@d41d8cd9", "all-contributors-cli@6.9.1@d41d8cd9", + "@reason-native/console@0.1.0@d41d8cd9", + "@opam/utop@opam:2.4.2@1cef5c4e", "@opam/rtop@opam:3.5.0@810d71c8", + "@opam/merlin@opam:3.3.2@7a364181", + "@opam/js_of_ocaml-compiler@opam:3.4.0@d2f7c406", + "@opam/alcotest@opam:0.8.5@68e6c66c" + ] + }, "qs@6.5.2@d41d8cd9": { "id": "qs@6.5.2@d41d8cd9", "name": "qs", @@ -1170,30 +1194,6 @@ ], "devDependencies": [] }, - "fetch@link-dev:./esy.json": { - "id": "fetch@link-dev:./esy.json", - "name": "fetch", - "version": "link-dev:./esy.json", - "source": { "type": "link-dev", "path": ".", "manifest": "esy.json" }, - "overrides": [], - "dependencies": [ - "ocaml@4.7.1004@d41d8cd9", - "fetch-native-lwt@link:./fetch-native-lwt.json", - "fetch-core@link:./fetch-core.json", - "@reason-native-web/morph_client@0.1.1@d41d8cd9", - "@opam/reason@opam:3.5.0@40205ac4", - "@opam/opium_core@github:rgrinberg/opium:opium_core.opam#287b83f85bcf6c75d503b1edab77c7ec524f9090@d41d8cd9", - "@opam/dune@opam:1.11.3@9894df55" - ], - "devDependencies": [ - "refmterr@3.2.2@d41d8cd9", "all-contributors-cli@6.9.1@d41d8cd9", - "@reason-native/console@0.1.0@d41d8cd9", - "@opam/utop@opam:2.4.2@1cef5c4e", "@opam/rtop@opam:3.5.0@810d71c8", - "@opam/merlin@opam:3.3.2@7a364181", - "@opam/js_of_ocaml-compiler@opam:3.4.0@d2f7c406", - "@opam/alcotest@opam:0.8.5@68e6c66c" - ] - }, "fast-json-stable-stringify@2.0.0@d41d8cd9": { "id": "fast-json-stable-stringify@2.0.0@d41d8cd9", "name": "fast-json-stable-stringify", diff --git a/examples/dune b/examples/dune deleted file mode 100644 index 9601eda..0000000 --- a/examples/dune +++ /dev/null @@ -1,3 +0,0 @@ -(executables - (names fetch_native_lwt_get fetch_native_lwt_is_succesful) - (libraries console.lib fetch-native-lwt)) diff --git a/examples/fetch_native_lwt_get.re b/examples/fetch-native-lwt/Get.re similarity index 78% rename from examples/fetch_native_lwt_get.re rename to examples/fetch-native-lwt/Get.re index 61c48e6..c609198 100644 --- a/examples/fetch_native_lwt_get.re +++ b/examples/fetch-native-lwt/Get.re @@ -5,8 +5,8 @@ Fetch.( | Ok({Response.body, status, url, _}) => { Printf.printf( "Status-Code: %d\nBody: %s\nUrl: %s", - Response.Status.toCode(status), - Response.Body.toString(body), + Response.Status.to_code(status), + Response.Body.to_string(body), url, ); } diff --git a/examples/fetch_native_lwt_is_succesful.re b/examples/fetch-native-lwt/GetIsSuccessful.re similarity index 59% rename from examples/fetch_native_lwt_is_succesful.re rename to examples/fetch-native-lwt/GetIsSuccessful.re index aedab2f..08e3abf 100644 --- a/examples/fetch_native_lwt_is_succesful.re +++ b/examples/fetch-native-lwt/GetIsSuccessful.re @@ -1,13 +1,13 @@ -let handleResponse = +let map_successful = Fetch.Response.( fun - | Ok({status, _}) when Status.isSuccessful(status) => "Success!" + | Ok({status, _}) when Status.is_successful(status) => "Success!" | _ => "That's anything but successful. :-(" ); Fetch.( fetch("http://httpbin.org/get", ()) - |> Lwt.map(handleResponse) + |> Lwt.map(map_successful) |> Lwt.map(Console.log) |> Lwt_main.run ); diff --git a/examples/fetch-native-lwt/dune b/examples/fetch-native-lwt/dune new file mode 100644 index 0000000..264421c --- /dev/null +++ b/examples/fetch-native-lwt/dune @@ -0,0 +1,3 @@ +(executables + (names Get GetIsSuccessful) + (libraries console.lib fetch-native-lwt)) diff --git a/fetch-native-lwt.json b/fetch-native-lwt.json index 0690a1e..dcc3bff 100644 --- a/fetch-native-lwt.json +++ b/fetch-native-lwt.json @@ -24,6 +24,7 @@ "@opam/utop": "2.4.2" }, "resolutions": { + "fetch-core": "link:./fetch-core.json", "@opam/httpaf-lwt-unix": "anmonteiro/httpaf:httpaf-lwt-unix.opam#76b461bed081c64908fb1fdfa076ab2c936ca622", "@opam/httpaf-lwt": "anmonteiro/httpaf:httpaf-lwt.opam#76b461bed081c64908fb1fdfa076ab2c936ca622", "@opam/httpaf": "anmonteiro/httpaf:httpaf.opam#76b461bed081c64908fb1fdfa076ab2c936ca622" diff --git a/src/fetch-core/body.rei b/src/fetch-core/Body.rei similarity index 52% rename from src/fetch-core/body.rei rename to src/fetch-core/Body.rei index 9a23ba3..5f8ffc7 100644 --- a/src/fetch-core/body.rei +++ b/src/fetch-core/Body.rei @@ -2,3 +2,6 @@ type t; let toString: t => string; let ofString: string => t; + +let to_string: t => string; +let of_string: string => t; diff --git a/src/fetch-core/fetch_core.re b/src/fetch-core/Fetch_Core.re similarity index 100% rename from src/fetch-core/fetch_core.re rename to src/fetch-core/Fetch_Core.re diff --git a/src/fetch-core/fetch_core.rei b/src/fetch-core/Fetch_Core.rei similarity index 100% rename from src/fetch-core/fetch_core.rei rename to src/fetch-core/Fetch_Core.rei diff --git a/src/fetch-core/fetchify.re b/src/fetch-core/Fetchify.re similarity index 100% rename from src/fetch-core/fetchify.re rename to src/fetch-core/Fetchify.re diff --git a/src/fetch-core/fetchify.rei b/src/fetch-core/Fetchify.rei similarity index 100% rename from src/fetch-core/fetchify.rei rename to src/fetch-core/Fetchify.rei diff --git a/src/fetch-core/headers.re b/src/fetch-core/Headers.re similarity index 100% rename from src/fetch-core/headers.re rename to src/fetch-core/Headers.re diff --git a/src/fetch-core/headers.rei b/src/fetch-core/Headers.rei similarity index 100% rename from src/fetch-core/headers.rei rename to src/fetch-core/Headers.rei diff --git a/src/fetch-core/method.re b/src/fetch-core/Method.re similarity index 91% rename from src/fetch-core/method.re rename to src/fetch-core/Method.re index 49d11d2..32afd26 100644 --- a/src/fetch-core/method.re +++ b/src/fetch-core/Method.re @@ -34,3 +34,6 @@ let toString = | `PUT => "PUT" | `TRACE => "TRACE" | `Other(v) => v; + +let of_string = ofString; +let to_string = toString; diff --git a/src/fetch-core/method.rei b/src/fetch-core/Method.rei similarity index 78% rename from src/fetch-core/method.rei rename to src/fetch-core/Method.rei index b6da55a..5f4377b 100644 --- a/src/fetch-core/method.rei +++ b/src/fetch-core/Method.rei @@ -13,3 +13,6 @@ type t = [ standard | `Other(string)]; let ofString: string => t; let toString: t => string; + +let of_string: string => t; +let to_string: t => string; diff --git a/src/fetch-core/README.md b/src/fetch-core/README.md index 2d0d4c4..f79d412 100644 --- a/src/fetch-core/README.md +++ b/src/fetch-core/README.md @@ -18,7 +18,7 @@ The goal is to be pluggable with any HTTP or Promise-implementation provided it E.g. ```re -module Fetch = Fetch_core.Fetchify.Make({ +module Fetch = Fetch_Core.Fetchify.Make({ module Response = { /* your implementation */ }; diff --git a/src/fetch-core/request.re b/src/fetch-core/Request.re similarity index 100% rename from src/fetch-core/request.re rename to src/fetch-core/Request.re diff --git a/src/fetch-core/request.rei b/src/fetch-core/Request.rei similarity index 100% rename from src/fetch-core/request.rei rename to src/fetch-core/Request.rei diff --git a/src/fetch-core/response.re b/src/fetch-core/Response.re similarity index 100% rename from src/fetch-core/response.re rename to src/fetch-core/Response.re diff --git a/src/fetch-core/response.rei b/src/fetch-core/Response.rei similarity index 100% rename from src/fetch-core/response.rei rename to src/fetch-core/Response.rei diff --git a/src/fetch-core/s.re b/src/fetch-core/S.re similarity index 92% rename from src/fetch-core/s.re rename to src/fetch-core/S.re index 24464c3..5377d51 100644 --- a/src/fetch-core/s.re +++ b/src/fetch-core/S.re @@ -3,6 +3,9 @@ module type Body = { let toString: t => string; let ofString: string => t; + + let to_string: t => string; + let of_string: string => t; }; module type Response = { diff --git a/src/fetch-core/status.re b/src/fetch-core/Status.re similarity index 95% rename from src/fetch-core/status.re rename to src/fetch-core/Status.re index 94fe11c..1c71c37 100644 --- a/src/fetch-core/status.re +++ b/src/fetch-core/Status.re @@ -217,6 +217,9 @@ let ofCode = | 511 => `NetworkAuthenticationRequired | c => `Other(c); +let to_code = toCode; +let of_code = ofCode; + let isSuccessful = fun | #success => true @@ -248,4 +251,11 @@ let isError = | #clientError => true | _ => false; +let is_informational = isInformational; +let is_successful = isSuccessful; +let is_redirect = isRedirect; +let is_client_error = isClientError; +let is_server_error = isServerError; +let is_error = isError; + let make = ofCode; diff --git a/src/fetch-core/status.rei b/src/fetch-core/Status.rei similarity index 89% rename from src/fetch-core/status.rei rename to src/fetch-core/Status.rei index 7772ec2..aefef16 100644 --- a/src/fetch-core/status.rei +++ b/src/fetch-core/Status.rei @@ -88,6 +88,9 @@ type t = [ standard | `Other(int)]; let toCode: t => int; let ofCode: int => t; +let to_code: t => int; +let of_code: int => t; + let isInformational: t => bool; let isSuccessful: t => bool; let isRedirect: t => bool; @@ -95,4 +98,11 @@ let isClientError: t => bool; let isServerError: t => bool; let isError: t => bool; +let is_informational: t => bool; +let is_successful: t => bool; +let is_redirect: t => bool; +let is_client_error: t => bool; +let is_server_error: t => bool; +let is_error: t => bool; + let make: int => t; diff --git a/src/fetch-core/dune b/src/fetch-core/dune index c67883a..15fcff1 100644 --- a/src/fetch-core/dune +++ b/src/fetch-core/dune @@ -1,4 +1,4 @@ (library - (name fetch_core) + (name Fetch_Core) (public_name fetch-core) (modules_without_implementation body)) diff --git a/src/fetch-native-lwt/fetch.re b/src/fetch-native-lwt/Fetch.re similarity index 84% rename from src/fetch-native-lwt/fetch.re rename to src/fetch-native-lwt/Fetch.re index fa149fb..efd26f6 100644 --- a/src/fetch-native-lwt/fetch.re +++ b/src/fetch-native-lwt/Fetch.re @@ -1,11 +1,11 @@ module IO = { module Response = { module Status = { - include Fetch_core.Response.Status; + include Fetch_Core.Response.Status; }; module Headers = { - include Fetch_core.Headers; + include Fetch_Core.Headers; }; module Body = { @@ -19,6 +19,9 @@ module IO = { }; let ofString = body => `String(body); + + let to_string = toString; + let of_string = ofString; }; type t = { @@ -38,7 +41,7 @@ module IO = { type t = Lwt.t(result(Response.t, exn)); - let make = ({headers, body, meth, url}: Fetch_core.Request.t) => { + let make = ({headers, body, meth, url}: Fetch_Core.Request.t) => { Lwt.Infix.( Morph.Request.make( ~meth, @@ -74,4 +77,4 @@ module IO = { }; }; -include Fetch_core.Fetchify.Make(IO); +include Fetch_Core.Fetchify.Make(IO); diff --git a/src/fetch-native-lwt/dune b/src/fetch-native-lwt/dune index 6905d37..5991527 100644 --- a/src/fetch-native-lwt/dune +++ b/src/fetch-native-lwt/dune @@ -1,4 +1,4 @@ (library - (name fetch) + (name Fetch) (public_name fetch-native-lwt) (libraries fetch-core morph_client)) diff --git a/test/method.re b/test/Method.re similarity index 98% rename from test/method.re rename to test/Method.re index 169f5bb..492ff6f 100644 --- a/test/method.re +++ b/test/Method.re @@ -1,4 +1,4 @@ -open Fetch_core.Method; +open Fetch_Core.Method; module ToString = { let toStringTest = () => { diff --git a/test/status.re b/test/Status.re similarity index 99% rename from test/status.re rename to test/Status.re index 9f76e11..0e8a755 100644 --- a/test/status.re +++ b/test/Status.re @@ -1,4 +1,4 @@ -open Fetch_core.Status; +open Fetch_Core.Status; module ToCode = { let informationToCode = () => { diff --git a/test/dune b/test/dune index 926ab70..9a7125f 100644 --- a/test/dune +++ b/test/dune @@ -1,3 +1,3 @@ (tests - (names status method) - (libraries alcotest fetch_core)) + (names Status Method) + (libraries alcotest fetch-core))