-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathserver.ts
42 lines (34 loc) · 885 Bytes
/
server.ts
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
42
// server.js
import dotenv from 'dotenv';
import fastifyServer from 'fastify';
import compress from '@fastify/compress';
import cors from '@fastify/cors';
import get from './routes/get';
dotenv.config();
const fastify = fastifyServer({logger: true});
fastify.register(compress);
// Configure CORS whitelist from .env
let whitelist: Array<string>;
if (!process.env.WHITELIST) {
whitelist = [""];
}
else if (process.env.WHITELIST.indexOf(',') !== -1) {
whitelist = process.env.WHITELIST.split(',');
}
else {
whitelist = [process.env.WHITELIST];
}
const corsOption = {
origin: whitelist,
};
fastify.register(cors, corsOption);
// Initialize get route
fastify.register(get);
const port = process.env.PORT ? Number(process.env.PORT) : 3000;
// listen for requests
fastify.listen({port: port}, (err) => {
if (err) {
fastify.log.error(err);
process.exit(1);
}
});