@metreeca/wire
    Preparing search index...
    • Creates an HTTP-based Repository backed by a SPARQL 1.1 Protocol endpoint.

      Each query and update is dispatched eagerly as a single HTTP request. A Dataset is sent as protocol parameters added to any the endpoint URL already carries: default-graph-uri and named-graph-uri on queries, using-graph-uri and using-named-graph-uri on updates. An endpoint rejecting an update that declares its own dataset as well fails like any other non-2xx response, rejecting with a Problem carrying the wire status.

      merge and store upload their triples as N-Triples to the Graph Store Protocol endpoint, when one is configured. Without one, they run as INSERT DATA updates on the update endpoint, preceded by DROP SILENT for store. Every SPARQL 1.1 Protocol endpoint supports this fallback, at the price of parsing the data as SPARQL text. A merge of no triples issues no request to either endpoint.

      Important

      Transaction Isolation — None. The SPARQL 1.1 Protocol exposes no transaction primitives.

      Error handling — every HTTP exchange is funnelled through createFetch, so:

      • Network failures (DNS, refused connection, TLS, abort) reject with a Problem carrying status: 0
      • Non-2xx responses reject with a Problem carrying the wire status, the response statusText as detail, and the parsed body (RFC 7807 JSON, plain text, or omitted) as report
      • Malformed JSON in a 2xx ask/select response rejects with a synthesised Problem carrying the response status and a parse-failure detail
      • A 2xx construct response whose Content-Type is not N-Triples rejects with a synthesised Problem
      • A malformed result payload surfaces the decoder's own error: a SyntaxError for ill-formed N-Triples, or a RangeError for a term component either syntax admits but the RDF data model rejects (a relative IRI, a lexical form holding an isolated surrogate, a non-conforming language tag), as well as for an unrecognised SPARQL Results JSON binding

      Parameters

      • options: {
            query: string;
            update?: string;
            graphs?: string;
            fetch?: (input: RequestInfo | URL, init?: RequestInit) => Promise<Response>;
        }

        Endpoint URLs and the optional fetch override

        • Readonlyquery: string

          SPARQL query endpoint URL, for example http://localhost:7200/repositories/my-repo

        • Optional Readonlyupdate?: string

          SPARQL update endpoint URL; defaults to query when omitted

        • Optional Readonlygraphs?: string

          Graph Store Protocol endpoint URL, for example http://localhost:7200/repositories/my-repo/rdf-graphs/service; when omitted, graph store writes run as SPARQL updates on the update endpoint, with the same effect on the store but no bulk upload of the data

        • Optional Readonlyfetch?: (input: RequestInfo | URL, init?: RequestInit) => Promise<Response>

          Custom fetch implementation used for every HTTP exchange, enabling header, auth, and exchange customisation; defaults to the global fetch

      Returns Repository

      An immutable Repository backed by the configured endpoints