UNPKG

@oobleck/fluid-backend

Version:

Fluid Framework backend for nteract RTC

38 lines 1.55 kB
import { execute, subscribe } from "graphql"; import { makeExecutableSchema } from "@graphql-tools/schema"; import { mergeTypeDefs } from "@graphql-tools/merge"; import { ExecuteError } from "../types"; import { ResolverContext } from "./context"; import { NotebookResolvers } from "./resolvers"; import queriesSchema from "../schema/gql/queries.gql"; import mutationsSchema from "../schema/gql/mutations.gql"; import subscriptionsSchema from "../schema/gql/subscriptions.gql"; export class FluidBackend { constructor() { this.context = new ResolverContext(); const typeDefs = mergeTypeDefs([queriesSchema, mutationsSchema, subscriptionsSchema]); this.schema = makeExecutableSchema({ typeDefs, resolvers: NotebookResolvers }); } dispose() { this.context.dispose(); } async execute(document, variableValues) { var _a; const valueOrPromise = execute({ schema: this.schema, document, variableValues, contextValue: this.context }); const result = await Promise.resolve(valueOrPromise); if (result.errors) { throw new ExecuteError(result.errors); } return (_a = result.data) !== null && _a !== void 0 ? _a : {}; } async subscribe(document, variableValues) { const result = subscribe({ schema: this.schema, document, variableValues, contextValue: this.context }); return result; } } //# sourceMappingURL=fluidBackend.js.map