import { readFileSync } from "fs"; import { ApolloServer } from "@apollo/server"; import { startStandaloneServer } from "@apollo/server/standalone"; import { resolvers } from "./resolvers"; import { loadTestData } from "./testData"; import { ServerContext } from "./serverContext"; import { UnoptimizedInMemoryRepository } from "./unoptimizedInMemoryRepository"; import { RepositoryDataLoader } from "./repositoryDataLoader"; const typeDefs = readFileSync("./schema.graphqls", "utf8"); async function main() { const server = new ApolloServer({ typeDefs, resolvers }); const repository = new UnoptimizedInMemoryRepository(); // await loadTestData(repository); const repositoryDataUpdater = new RepositoryDataLoader( repository ); await repositoryDataUpdater.start(); const { url } = await startStandaloneServer(server, { listen: { port: 4000, }, context: async ({ req, res }) => { return { repository, } }, }); console.log(`Server ready at: ${url}`); } main();