graphql-to-sparql
Version:
Converts GraphQL queries to SPARQL queries
43 lines (42 loc) • 2.2 kB
TypeScript
import type { Algebra } from '@traqula/algebra-transformations-1-2';
import type { DocumentNode, FragmentDefinitionNode } from 'graphql/language';
import type { JsonLdContextNormalized, JsonLdContext } from 'jsonld-context-parser';
import type { IConvertOptions } from './IConvertOptions';
import type { IConvertSettings } from './IConvertSettings';
import { Util } from './Util';
/**
* Translate GraphQL queries into SPARQL algebra.
*/
export declare class Converter {
private readonly util;
constructor(settings?: IConvertSettings);
static registerNodeHandlers(util: Util, settings: IConvertSettings): void;
static registerNodeValueHandlers(util: Util, settings: IConvertSettings): void;
static registerDirectiveNodeHandlers(util: Util, settings: IConvertSettings): void;
/**
* Translates a GraphQL query into SPARQL algebra.
* @param {string | DocumentNode} graphqlQuery A GraphQL query string or node.
* @param {IContext} context A JSON-LD context.
* @param {IConvertOptions} options An options object.
* @return {Promise<Operation>} A promise resolving to an operation.
*/
graphqlToSparqlAlgebra(graphqlQuery: string | DocumentNode, context: JsonLdContext, options?: IConvertOptions): Promise<Algebra.Operation>;
/**
* Translates a GraphQL query into SPARQL algebra.
* @param {string | DocumentNode} graphqlQuery A GraphQL query string or node.
* @param {IContext} context A JSON-LD context.
* @param {IConvertOptions} options An options object.
* @return {Operation} An operation.
*/
graphqlToSparqlAlgebraRawContext(graphqlQuery: string | DocumentNode, context: JsonLdContextNormalized, options?: IConvertOptions): Algebra.Operation;
/**
* Create an index of all fragment definitions in the given document.
*
* This will assign a new array of definition nodes without fragment definition.
*
* @param {DocumentNode} document A document node.
* @return {{[p: string]: FragmentDefinitionNode}} An index of fragment definition nodes.
*/
indexFragments(document: DocumentNode): Record<string, FragmentDefinitionNode>;
private initializeNodeHandlers;
}