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";import Session from "supertokens-node/recipe/session";
let app = express();
var GraphQLSchema = buildSchema(` type Mutation { login(email: String, password: String): String }`);
function getResolvers(req: any, res: any) { return { login: async ({ email, password }: { email: string, password: string }) => { return new Promise(async (resolve, reject) => { try { let userIdentifier = "userId" let session = await Session.createNewSession(res, userIdentifier); resolve("Logged In"); } 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, } };}))