Current section
Files
Jump to
Current section
Files
src/subdued.gleam
import gleam/fetch
import gleam/http/request
import gleam/io
import gleam/javascript/promise
// import gleam/http/response
pub type JSDOM
pub type Window
pub type Document
@external(javascript, "./jsdom_ffi.mjs", "new_jsdom")
pub fn new(html: String) -> Result(JSDOM, String)
@external(javascript, "./jsdom_ffi.mjs", "get_window")
pub fn get_window(jsdom: JSDOM) -> Window
@external(javascript, "./jsdom_ffi.mjs", "get_document")
pub fn get_document(window: Window) -> Document
pub fn main() {
let assert Ok(req) = request.to("https://example.com")
// Send the HTTP request to the server
use resp <- promise.try_await(fetch.send(req))
use resp <- promise.try_await(fetch.read_text_body(resp))
// resp.body |> io.println
let assert Ok(jsdom) = resp.body |> new
let document = jsdom |> get_window |> get_document
promise.resolve(Ok(Nil))
}