UNPKG

type-graphql

Version:

Create GraphQL schema and resolvers with TypeScript, using classes and decorators!

53 lines (52 loc) 1.86 kB
import { PubSub } from "graphql-subscriptions"; import { IOCContainer } from "../utils/container.js"; export class BuildContext { static create(options) { if (options.scalarsMap !== undefined) { this.scalarsMaps = options.scalarsMap; } if (options.validate !== undefined) { this.validate = options.validate; } if (options.validateFn !== undefined) { this.validateFn = options.validateFn; } if (options.authChecker !== undefined) { this.authChecker = options.authChecker; } if (options.authMode !== undefined) { this.authMode = options.authMode; } if (options.pubSub !== undefined) { if ("eventEmitter" in options.pubSub) { this.pubSub = new PubSub(options.pubSub); } else { this.pubSub = options.pubSub; } } if (options.globalMiddlewares) { this.globalMiddlewares = options.globalMiddlewares; } if (options.nullableByDefault !== undefined) { this.nullableByDefault = options.nullableByDefault; } if (options.disableInferringDefaultValues !== undefined) { this.disableInferringDefaultValues = options.disableInferringDefaultValues; } this.container = new IOCContainer(options.container); } static reset() { this.scalarsMaps = []; this.validate = false; this.validateFn = undefined; this.authChecker = undefined; this.authMode = "error"; this.pubSub = new PubSub(); this.globalMiddlewares = []; this.container = new IOCContainer(); this.nullableByDefault = false; this.disableInferringDefaultValues = false; } } BuildContext.reset();