type-graphql
Version:
Create GraphQL schema and resolvers with TypeScript, using classes and decorators!
53 lines (52 loc) • 1.86 kB
JavaScript
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();