From 49242e52cae3e4531373c8bfcaa4130f3caa605a Mon Sep 17 00:00:00 2001 From: Christoph Knittel Date: Sat, 22 Feb 2025 10:12:29 +0100 Subject: [PATCH] ReScriptReactRouter: get rid of pipe last --- src/RescriptReactRouter.bs.js | 18 ++++++++---------- src/RescriptReactRouter.res | 24 ++++++++++++------------ 2 files changed, 20 insertions(+), 22 deletions(-) diff --git a/src/RescriptReactRouter.bs.js b/src/RescriptReactRouter.bs.js index a86a821..3ca19e8 100644 --- a/src/RescriptReactRouter.bs.js +++ b/src/RescriptReactRouter.bs.js @@ -3,8 +3,6 @@ var Curry = require("rescript/lib/js/curry.js"); var React = require("react"); -var Js_array = require("rescript/lib/js/js_array.js"); -var Js_string = require("rescript/lib/js/js_string.js"); var Caml_option = require("rescript/lib/js/caml_option.js"); function safeMakeEvent(eventName) { @@ -22,14 +20,14 @@ function pathParse(str) { case "/" : return /* [] */0; default: - var raw = Js_string.sliceToEnd(1, str); + var raw = str.slice(1); var match = raw[raw.length - 1 | 0]; - var raw$1 = match === "/" ? Js_string.slice(0, -1, raw) : raw; - var match$1 = Js_string.splitAtMost("?", 2, raw$1); + var raw$1 = match === "/" ? raw.slice(0, -1) : raw; + var match$1 = raw$1.split("?", 2); var raw$2 = match$1.length !== 2 ? raw$1 : match$1[0]; - var a = Js_array.filter((function (item) { - return item.length !== 0; - }), Js_string.split("/", raw$2)); + var a = raw$2.split("/").filter(function (item) { + return item.length !== 0; + }); var _i = a.length - 1 | 0; var _res = /* [] */0; while(true) { @@ -70,7 +68,7 @@ function hash(param) { case "#" : return ""; default: - return Js_string.sliceToEnd(1, raw); + return raw.slice(1); } } @@ -80,7 +78,7 @@ function searchParse(str) { case "?" : return ""; default: - var match = Js_string.splitAtMost("?", 2, str); + var match = str.split("?", 2); if (match.length !== 2) { return ""; } else { diff --git a/src/RescriptReactRouter.res b/src/RescriptReactRouter.res index e960d0c..80f3d75 100644 --- a/src/RescriptReactRouter.res +++ b/src/RescriptReactRouter.res @@ -55,9 +55,9 @@ let arrayToList = a => { if i < 0 { res } else { - tolist(i - 1, list{Array.unsafe_get(a, i), ...res}) + tolist(i - 1, list{a->Js.Array2.unsafe_get(i), ...res}) } - tolist(Array.length(a) - 1, list{}) + tolist(a->Js.Array2.length - 1, list{}) } /* if we ever roll our own parser in the future, make sure you test all url combinations e.g. foo.com/?#bar @@ -72,37 +72,37 @@ let pathParse = str => list{} | raw => /* remove the preceeding /, which every pathname seems to have */ - let raw = Js.String.sliceToEnd(~from=1, raw) + let raw = raw->Js.String2.sliceToEnd(~from=1) /* remove the trailing /, which some pathnames might have. Ugh */ - let raw = switch Js.String.get(raw, Js.String.length(raw) - 1) { - | "/" => Js.String.slice(~from=0, ~to_=-1, raw) + let raw = switch raw->Js.String2.get(raw->Js.String2.length - 1) { + | "/" => raw->Js.String2.slice(~from=0, ~to_=-1) | _ => raw } /* remove search portion if present in string */ - let raw = switch raw |> Js.String.splitAtMost("?", ~limit=2) { + let raw = switch raw->Js.String2.splitAtMost("?", ~limit=2) { | [path, _] => path | _ => raw } - raw |> Js.String.split("/") |> Js.Array.filter(item => String.length(item) != 0) |> arrayToList + raw->Js.String2.split("/")->Js.Array2.filter(item => item->Js.String2.length != 0)->arrayToList } let path = (~serverUrlString=?, ()) => switch (serverUrlString, window) { | (None, None) => list{} | (Some(serverUrlString), _) => pathParse(serverUrlString) - | (_, Some(window: Dom.window)) => pathParse(window |> location |> pathname) + | (_, Some(window: Dom.window)) => pathParse(window->location->pathname) } let hash = () => switch window { | None => "" | Some(window: Dom.window) => - switch window |> location |> hash { + switch window->location->hash { | "" | "#" => "" | raw => /* remove the preceeding #, which every hash seems to have. Why is this even included in location.hash?? */ - raw |> Js.String.sliceToEnd(~from=1) + raw->Js.String2.sliceToEnd(~from=1) } } let searchParse = str => @@ -110,7 +110,7 @@ let searchParse = str => | "" | "?" => "" | raw => - switch raw |> Js.String.splitAtMost("?", ~limit=2) { + switch raw->Js.String2.splitAtMost("?", ~limit=2) { | [_, search] => search | _ => "" } @@ -120,7 +120,7 @@ let search = (~serverUrlString=?, ()) => switch (serverUrlString, window) { | (None, None) => "" | (Some(serverUrlString), _) => searchParse(serverUrlString) - | (_, Some(window: Dom.window)) => searchParse(window |> location |> search) + | (_, Some(window: Dom.window)) => searchParse(window->location->search) } let push = path =>