mirror of
https://github.com/jorgev259/soc_site-astro.git
synced 2025-06-29 07:57:41 +00:00
24 lines
No EOL
862 B
TypeScript
24 lines
No EOL
862 B
TypeScript
import ApolloPackage from '@apollo/client'
|
|
const { ApolloClient, InMemoryCache } = ApolloPackage;
|
|
import { SchemaLink } from "@apollo/client/link/schema"
|
|
import { makeExecutableSchema } from "@graphql-tools/schema";
|
|
import { getSession } from 'auth-astro/server';
|
|
import type { Session } from '@auth/core/types';
|
|
|
|
import { typeDefs } from "./__generated__/typeDefs.generated";
|
|
import resolvers from '@/graphql/resolvers'
|
|
|
|
import db from 'sequelize';
|
|
|
|
const schema = makeExecutableSchema({ typeDefs, resolvers })
|
|
export type ResolverContext = { request?: Request, session?: Session }
|
|
|
|
export async function getApolloClient(request?: Request) {
|
|
const session = request ? await getSession(request) : null
|
|
|
|
return new ApolloClient({
|
|
ssrMode: true,
|
|
link: new SchemaLink({ schema, context: { request, session, db } }),
|
|
cache: new InMemoryCache()
|
|
})
|
|
} |