Files
project-inter-server/src/index.ts
2024-12-26 18:04:43 -08:00

42 lines
1.0 KiB
TypeScript

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<ServerContext>({
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();