diff --git a/packages/url/js/URL.re b/packages/url/js/URL_impl.re similarity index 100% rename from packages/url/js/URL.re rename to packages/url/js/URL_impl.re diff --git a/packages/url/js/dune b/packages/url/js/dune index eddd1f2ed..2e8613c03 100644 --- a/packages/url/js/dune +++ b/packages/url/js/dune @@ -3,8 +3,7 @@ (modes melange) (public_name server-reason-react.url_js) (libraries melange.js) - (wrapped false) (preprocess - (pps melange.ppx))) + (pps melange.ppx)) + (implements url)) -(copy_files# "../URL.rei") diff --git a/packages/url/lib/URL.ml b/packages/url/lib/URL.ml new file mode 100644 index 000000000..5906b9f58 --- /dev/null +++ b/packages/url/lib/URL.ml @@ -0,0 +1,7 @@ +include URL_impl + +let construct ?protocol ~hostname ?port ?pathname ?search ?hash ?password ?username () = + let apply_opt f o = match o with None -> Fun.id | Some x -> fun u -> f u x in + "https://example.com" |> makeExn |> apply_opt setProtocol protocol |> Fun.flip setHostname hostname + |> apply_opt setPort port |> apply_opt setPathname pathname |> apply_opt setSearch search |> apply_opt setHash hash + |> apply_opt setPassword password |> apply_opt setUsername username diff --git a/packages/url/URL.rei b/packages/url/lib/URL_impl.rei similarity index 100% rename from packages/url/URL.rei rename to packages/url/lib/URL_impl.rei diff --git a/packages/url/lib/dune b/packages/url/lib/dune new file mode 100644 index 000000000..d896b25d9 --- /dev/null +++ b/packages/url/lib/dune @@ -0,0 +1,5 @@ +(library + (name url) + (public_name server-reason-react.url) + (wrapped false) + (virtual_modules URL_impl)) diff --git a/packages/url/native/URL.re b/packages/url/native/URL_impl.re similarity index 100% rename from packages/url/native/URL.re rename to packages/url/native/URL_impl.re diff --git a/packages/url/native/dune b/packages/url/native/dune index efefd1293..ed119e35c 100644 --- a/packages/url/native/dune +++ b/packages/url/native/dune @@ -1,7 +1,7 @@ (library (name url_native) (public_name server-reason-react.url_native) - (wrapped false) - (libraries uri js)) + (libraries uri js) + (implements url)) (copy_files# "../URL.rei")