Concorde documentation · same URL (interactive) · llms.txt

Concorde functional component — Fetch. sonic-fetch sends a GET request to serviceURL + endPoint and publishes the response under dataProvider, so its children and any subscriber of that provider can render it. In a Lit component, prefer th Doc ID: core/components/functional/fetch/fetch. Keywords: Concorde, supersoniks, core/components/functional/fetch/fetch, fetch, Fetch, functional component, sonic-fetch, web component, serviceURL, endPoint, dataProvider. URL: https://concorde.supersoniks.org/core/components/functional/fetch.

Fetch

sonic-fetch sends a GET request to serviceURL + endPoint and publishes the response under dataProvider, so its children and any subscriber of that provider can render it. In a Lit component, prefer the @get decorator; for collections, use List or Queue.

Basic example

dataProvider is required; serviceURL and dataProvider can be set on an ancestor. Children are hidden while the request is pending. With no serviceURL, requests go to the page origin.

<sonic-fetch serviceURL="/docs-mock-api" endPoint="flights?direction=departures" dataProvider="docsFetchNextDeparture" key="flights.0">
      <p data-bind ::inner-html="Next departure: <b>$code</b> to $city, gate $gate"></p>
    </sonic-fetch>

Data provider as endpoint

With no endPoint, the dataProvider value is used as the endpoint.

<sonic-fetch serviceURL="/docs-mock-api" dataProvider="flights?direction=arrivals" key="flights.0">
      <p data-bind ::inner-html="Next arrival: <b>$code</b> from $city at $time"></p>
    </sonic-fetch>

Key

key keeps only part of the response, using a dot path: with { "flights": [ … ] } and key="flights.1", the provider holds the second flight. Add preserveOtherKeys to merge the target into the parent object instead of dropping its siblings. With no key, the whole response is published.

<sonic-fetch serviceURL="/docs-mock-api" endPoint="flights?direction=departures" dataProvider="docsFetchKey" key="flights.1">
      <p data-bind ::inner-html="$code to $city ($airport), status $status"></p>
    </sonic-fetch>

Loader and skeleton

With no loader, nothing is shown during the request. Set loader (fixed overlay) or loader="inline" to show a Loader, or add a <template skeleton> child rendered in place of the content while loading.

<sonic-fetch loader="inline" serviceURL="/docs-mock-api" endPoint="flights?direction=arrivals" dataProvider="docsFetchLoader" key="flights.2">
      <template skeleton>
        <p class="text-neutral-400">Loading arrivals…</p>

Text responses

When the response type starts with text/, the provider holds { text: "…" }.

<sonic-fetch endPoint="robots.txt" dataProvider="docsFetchText">
      <pre class="max-h-40 overflow-auto text-xs" data-bind ::inner-html="$text"></pre>
    </sonic-fetch>

Reloading

endPoint is reactive: changing it fetches again. Call invalidate() on the publisher to reload the same endpoint, or set refetchEveryMs to poll. A request that fails with no data shows an error toast.

import { PublisherManager } from "@supersoniks/concorde/utils";

PublisherManager.get("docsFetchNextDeparture").invalidate();

API reference

Attribute Values Description
dataProvider string Required. Publisher that receives the data. Also the endpoint when endPoint is empty. Inherited from ancestors
serviceURL URL (default page origin) Base URL of the API. Inherited from ancestors
endPoint string Path appended to serviceURL. Reactive
key dot path Part of the response to publish
preserveOtherKeys boolean With key, keeps the sibling properties of the target
loader fixed (when empty) · inline Loader shown during the request. None by default
lazyload boolean Fetches when the element nears the viewport
lazyBoundsRatio number (default 1) Viewport ratio used as margin by lazyload
refetchEveryMs number (default 0) Polling interval in milliseconds; 0 disables it
headersDataProvider string Publisher whose data is sent as request headers. Inherited from ancestors
token string Bearer token. Inherited from ancestors
userName · password · tokenProvider string Basic auth used to get a token from tokenProvider when no token is set. Inherited from ancestors
credentials omit · same-origin · include fetch credentials mode. Inherited from ancestors
cache RequestCache value fetch cache mode
addHTTPResponse boolean Adds the HTTP response as _sonic_http_response_ on the data. Inherited from ancestors
localStorage disabled (default) · enabled Persists the publisher in localStorage
Slot Description
(default) Content, hidden while the request is pending
Event Description
loading The request starts
load The data is published