forked from ogjr80/firebase-function
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex1.js
More file actions
43 lines (37 loc) · 1.14 KB
/
index1.js
File metadata and controls
43 lines (37 loc) · 1.14 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
// // Create and deploy your first functions
// // https://firebase.google.com/docs/functions/get-started
//
// exports.helloWorld = functions.https.onRequest((request, response) => {
// functions.logger.info("Hello logs!", {structuredData: true});
// response.send("Hello from Firebase!");
// });
const functions = require("firebase-functions");
const { ApolloServer } = require("apollo-server-express");
const express = require("express");
const cors = require("cors");
const typeDefs = require("./schema");
const resolvers = require("./resolvers");
const server = new ApolloServer({
typeDefs,
resolvers,
introspection: true,
playground: true,
context: ({ req, res }) => ({
headers: req.headers,
req,
res,
}),
});
const app = express();
app.use(cors());
exports.graphql = functions.https.onRequest(async (req, res) => {
if (req.method === "OPTIONS") {
res.set("Access-Control-Allow-Methods", "POST");
res.set("Access-Control-Allow-Headers", "Content-Type");
res.status(204).send("");
} else {
await server.start();
server.applyMiddleware({ app, path: "/", cors: false });
return app(req, res);
}
});