Client.client.follow: def of emerging-ezhttp@0.21.0.0 Import: import emerging-ezhttp@0.21.0.0/src/client.bend as Client Lines 123-135 of emerging-ezhttp@0.21.0.0/src/client.bend: https://jend.leeeet.dev/read.txt?path=emerging-ezhttp@0.21.0.0/src/client.bend&start_line=123&end_line=135 import Base import emerging-ezhttp@0.21.0.0/src/http.bend as Http import emerging-ezhttp@0.21.0.0/src/body.bend as Body # GET, following redirects while `left` hops remain; `body` goes with this # hop only. The answer is the last response, which is a redirect only when # the hops ran out or its Location is not one redirect.bend follows def client.follow(+left: Nat, +url: String, +headers: List<&2, Http.Header>, body: Body.Body, +ms: U32) -> IO(Response): match left: case 0n: client.timed("GET", url, headers, body, ms) case 1n+p: do IO: r : Response <- client.timed("GET", url, headers, body, ms) client.after(client.hop(left, url, r), next => client.follow(p, next, headers, Body.Empty{}, ms)) Uses (12): https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=IO https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=IO.bind https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=List https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Nat https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=String https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32 https://jend.leeeet.dev/definition.txt?path=emerging-ezhttp@0.21.0.0/src/body.bend&name=Body https://jend.leeeet.dev/definition.txt?path=emerging-ezhttp@0.21.0.0/src/client.bend&name=Response https://jend.leeeet.dev/definition.txt?path=emerging-ezhttp@0.21.0.0/src/client.bend&name=client.after https://jend.leeeet.dev/definition.txt?path=emerging-ezhttp@0.21.0.0/src/client.bend&name=client.hop https://jend.leeeet.dev/definition.txt?path=emerging-ezhttp@0.21.0.0/src/client.bend&name=client.timed https://jend.leeeet.dev/definition.txt?path=emerging-ezhttp@0.21.0.0/src/http.bend&name=Header