glendam/network_listener
Network response event listener for glendam. Provides a high-level API to subscribe to and collect network responses.
Types
A typed NetworkListener value used by the network listener capability.
pub opaque type NetworkListener
A typed ResponseReceivedEvent value used by the network listener capability.
pub type ResponseReceivedEvent {
ResponseReceivedEvent(
request_id: network.RequestId,
response: network.Response,
)
}
Constructors
-
ResponseReceivedEvent( request_id: network.RequestId, response: network.Response, )The
ResponseReceivedEventvariant.
A typed ResponseWithBody value used by the network listener capability.
pub type ResponseWithBody {
ResponseWithBody(event: ResponseReceivedEvent, body: String)
}
Constructors
-
ResponseWithBody(event: ResponseReceivedEvent, body: String)The
ResponseWithBodyvariant.
Values
pub fn collect_responses(
listener listener: NetworkListener,
filter filter: fn(ResponseReceivedEvent) -> Bool,
) -> Result(List(ResponseWithBody), chrome.RequestError)
Drain matching response events and collect their response bodies.
Chrome only makes a body available after Network.loadingFinished, so this
function waits for the corresponding lifecycle event up to the page
timeout. Responses that fail to load, or for which Chrome reports that no
body exists, are omitted rather than causing unrelated responses to be
discarded.
pub fn defer_stop(
listener listener: NetworkListener,
body body: fn() -> a,
) -> a
Defer pattern for use expressions.
pub fn drain_events(
listener listener: NetworkListener,
) -> List(ResponseReceivedEvent)
Drain and decode all response events that have arrived so far.
pub fn start(
page page: glendam.Page,
) -> Result(NetworkListener, chrome.RequestError)
Enable the Network domain and subscribe to response lifecycle events.
pub fn stop(listener listener: NetworkListener) -> Nil
Remove all response lifecycle listeners.