{"version":3,"file":"SystemGraphQLHandlerFactory.cjs","sources":["../../../../../packages/engine-http/src/system/SystemGraphQLHandlerFactory.ts"],"sourcesContent":["import { devTypeDefs, ResolverFactory, SystemResolverContext, typeDefs } from '@contember/engine-system-api'\nimport { createDbQueriesListener, createGraphQLQueryHandler, GraphQLListener, GraphQLQueryHandler } from '../graphql'\nimport { DocumentNode } from 'graphql'\nimport { mergeTypeDefs } from '@graphql-tools/merge'\nimport { makeExecutableSchema } from '@graphql-tools/schema'\n\nexport type SystemGraphQLContext = SystemResolverContext & {\n\tonClearCache: () => void\n}\n\nexport type SystemGraphQLHandler = GraphQLQueryHandler<SystemGraphQLContext>\n\nexport class SystemGraphQLHandlerFactory {\n\tconstructor(\n\t\tprivate readonly debugMode: boolean,\n\t) {\n\t}\n\n\tcreate(resolversFactory: ResolverFactory): SystemGraphQLHandler {\n\t\tconst defs: DocumentNode[] = [typeDefs]\n\t\tif (this.debugMode) {\n\t\t\tdefs.push(devTypeDefs)\n\t\t}\n\t\tconst mergedDefs = mergeTypeDefs(defs)\n\t\tconst resolvers = resolversFactory.create(this.debugMode)\n\t\tconst schema = makeExecutableSchema({\n\t\t\ttypeDefs: mergedDefs,\n\t\t\tresolvers,\n\t\t})\n\n\t\tconst listeners: GraphQLListener<SystemGraphQLContext>[] = []\n\t\tif (this.debugMode) {\n\t\t\tlisteners.push({\n\t\t\t\tonResponse: ({ context }) => {\n\t\t\t\t\tcontext.onClearCache()\n\t\t\t\t},\n\t\t\t})\n\t\t\tlisteners.push(createDbQueriesListener(context => context.db.client, this.debugMode))\n\t\t}\n\t\treturn createGraphQLQueryHandler<SystemGraphQLContext>({\n\t\t\tschema,\n\t\t\tlisteners,\n\t\t})\n\t}\n}\n"],"names":["typeDefs","devTypeDefs","mergeTypeDefs","schema","makeExecutableSchema","createDbQueriesListener","createGraphQLQueryHandler"],"mappings":";;;;;;;AAYO,MAAM,4BAA4B;AAAA,EACxC,YACkB,WAChB;AADgB,SAAA,YAAA;AAAA,EAAA;AAAA,EAIlB,OAAO,kBAAyD;AACzD,UAAA,OAAuB,CAACA,wBAAQ;AACtC,QAAI,KAAK,WAAW;AACnB,WAAK,KAAKC,2BAAW;AAAA,IAAA;AAEhB,UAAA,aAAaC,oBAAc,IAAI;AACrC,UAAM,YAAY,iBAAiB,OAAO,KAAK,SAAS;AACxD,UAAMC,WAASC,OAAAA,qBAAqB;AAAA,MACnC,UAAU;AAAA,MACV;AAAA,IAAA,CACA;AAED,UAAM,YAAqD,CAAC;AAC5D,QAAI,KAAK,WAAW;AACnB,gBAAU,KAAK;AAAA,QACd,YAAY,CAAC,EAAE,cAAc;AAC5B,kBAAQ,aAAa;AAAA,QAAA;AAAA,MACtB,CACA;AACS,gBAAA,KAAKC,0CAAwB,CAAW,YAAA,QAAQ,GAAG,QAAQ,KAAK,SAAS,CAAC;AAAA,IAAA;AAErF,WAAOC,oCAAgD;AAAA,MAAA,QACtDH;AAAAA,MACA;AAAA,IAAA,CACA;AAAA,EAAA;AAEH;;"}