import express from "express"import { buildSchema } from 'graphql';import { graphqlHTTP } from 'express-graphql';import { verifySession } from "supertokens-node/recipe/session/framework/express";import { SessionRequest } from "supertokens-node/framework/express";
let app = express();
var GraphQLSchema = buildSchema(` type Mutation { signOut: String }`);
function getResolvers(req: any, res: any) { return { signOut: async (_: any, context: any) => { return new Promise(async (resolve, reject) => { try { if (context.session !== undefined) { await context.session.revokeSession(); resolve("Logged out"); } else { resolve("Session does not exist"); } } catch (e) { reject(e); } }); }, };}
app.use("/graphQL", verifySession({ sessionRequired: false }), graphqlHTTP(async (req, res) => { return { schema: GraphQLSchema, rootValue: getResolvers(req, res), context: { session: (req as SessionRequest).session, } };}))