UNPKG

@tpluscode/sparql-builder

Version:

Simple JS library to build SPARQL queries

32 lines 1.61 kB
import { QueryOptions, Client } from 'sparql-http-client'; import { SparqlTemplateResult } from '@tpluscode/rdf-string'; import type { NamespaceBuilder } from '@rdfjs/namespace'; import { PrologueBuilder } from './partials/prologue.js'; interface SparqlBuildOptions { base?: string; prefixes?: Record<string, string | NamespaceBuilder>; } export type SparqlExecuteOptions = QueryOptions & SparqlBuildOptions & { logQuery?: (query: string) => void; }; export interface SparqlQuery extends PrologueBuilder { type: 'SELECT' | 'CONSTRUCT' | 'ASK' | 'UPDATE'; build(options?: SparqlBuildOptions): string; _getTemplateResult(): SparqlTemplateResult; } export interface SparqlQueryExecutable { execute<TClient extends Client>(client: TClient, requestInit?: SparqlExecuteOptions): ReturnType<TClient['query']['select']>; } export interface SparqlGraphQueryExecutable { execute<TClient extends Client>(client: TClient, requestInit?: SparqlExecuteOptions): ReturnType<TClient['query']['construct']>; } export interface SparqlUpdateExecutable { execute<TClient extends Client>(client: TClient, requestInit?: SparqlExecuteOptions): ReturnType<TClient['query']['update']>; } export interface SparqlAskExecutable { execute<TClient extends Client>(client: TClient, requestInit?: SparqlExecuteOptions): ReturnType<TClient['query']['ask']>; } type TBuilder = Pick<SparqlQuery, 'build' | 'type'> & Pick<SparqlTemplateResult, '_toPartialString'>; export default function Builder<T extends SparqlQuery>(type: SparqlQuery['type']): TBuilder & T; export {}; //# sourceMappingURL=index.d.ts.map