UNPKG

@inrupt/experimental-graphql-codegen-solid-query

Version:

Generate a Schema Node in Code Generation

42 lines (37 loc) 1.38 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.plugin = void 0; // Adds the compiled schema to the source document function plugin(schema, documents, config) { return { content: "", prepend: [ `import { execute, type ExecutionResult } from 'graphql'`, `import { TypedDocumentNode } from '@graphql-typed-document-node/core'`, `import * as RDF from '@rdfjs/types'`, `import { Algebra } from 'sparqlalgebrajs'`, ], append: [ ` export type ISparqlEngine = RDF.AlgebraSparqlQueryable<Algebra.Project | Algebra.Ask, RDF.BindingsResultSupport & RDF.BooleanResultSupport>; export interface IContext { sparqlEngine: ISparqlEngine; context?: RDF.QueryContext | undefined; } export interface ISolidQueryOptions<TData, TVariables> { document: TypedDocumentNode<TData, TVariables>; variables: TVariables; context: IContext; } export async function solidQuery<TData, TVariables extends Record<string, any>>(options: ISolidQueryOptions<TData, TVariables>): Promise<ExecutionResult<TData>> { return execute({ schema, document: options.document, variableValues: options.variables, contextValue: options.context, }) as Promise<ExecutionResult<TData>> | ExecutionResult<TData>; }`, ], }; } exports.plugin = plugin;