@tpluscode/sparql-builder
Version:
Simple JS library to build SPARQL queries
32 lines • 1.61 kB
TypeScript
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