oaspec_fetch
JavaScript fetch transport adapter for oaspec generated clients,
backed by gleam_fetch.
oaspec_fetch bridges the runtime-agnostic oaspec/transport.AsyncSend
contract that oaspec generate --mode=client emits to the browser
fetch API on the JavaScript target. The root oaspec package does not
depend on any specific HTTP library; the transport is composed at the
call site by plugging this adapter (or your own) into the generated
client.
For the BEAM target, see the sibling oaspec_httpc adapter.
Install
gleam add oaspec_fetch
Quick start
import api/client
import oaspec/fetch
import oaspec/transport
pub fn main() {
let send =
fetch.send
|> transport.with_base_url(client.default_base_url())
client.list_pets_async(send, limit: Some(10), offset: None)
|> transport.run(fn(result) {
let _ = result
Nil
})
}
The async client variants suffixed _async return a transport.Async
value that resolves once the underlying fetch promise settles. The
adapter exposes helpers to bridge transport.Async to native
JavaScript promises when the host needs to await the result outside
Gleam.
Tests in the consumer
For unit tests of code that calls a generated async client, prefer
oaspec/mock over a real network. The adapter’s AsyncSend shape
matches mock.AsyncSend, so test code substitutes one for the other
without touching the call sites.
License
MIT. See the LICENSE file at the root of the oaspec repository.