Files
freeCodeCamp/api/src/server.ts
2023-10-03 16:17:00 -05:00

36 lines
920 B
TypeScript

// We import these declaration files here, in the entry point of our application, so
// that they're available throughout.
import '@total-typescript/ts-reset';
import { build } from './app';
import { FREECODECAMP_NODE_ENV, PORT } from './utils/env';
const envToLogger = {
development: {
transport: {
target: 'pino-pretty',
options: {
translateTime: 'HH:MM:ss Z',
ignore: 'pid,hostname'
}
},
level: 'debug'
},
// TODO: is this the right level for production or should we use 'error'?
production: { level: 'fatal' },
test: undefined
};
const start = async () => {
const fastify = await build({ logger: envToLogger[FREECODECAMP_NODE_ENV] });
try {
const port = Number(PORT);
fastify.log.info(`Starting server on port ${port}`);
await fastify.listen({ port });
} catch (err) {
fastify.log.error(err);
process.exit(1);
}
};
void start();