mirror of
https://github.com/txtdot/txtdot
synced 2024-10-18 22:50:19 +03:00
46 lines
1.0 KiB
TypeScript
46 lines
1.0 KiB
TypeScript
import { IConfigService } from "./config/config.interface";
|
|
import { ConfigService } from "./config/config.service";
|
|
|
|
import NodeCache from "node-cache";
|
|
|
|
import Fastify from "fastify";
|
|
import middie from "@fastify/middie";
|
|
import fastifyView from "@fastify/view";
|
|
import ejs from "ejs";
|
|
|
|
import mainRoute from "./routes/main-route";
|
|
import parseRoute from "./routes/parseRoute";
|
|
|
|
class App {
|
|
config: IConfigService;
|
|
cache: NodeCache;
|
|
|
|
constructor() {
|
|
this.config = new ConfigService();
|
|
this.cache = new NodeCache({ stdTTL: 100, checkperiod: 120 });
|
|
}
|
|
|
|
async init() {
|
|
const fastify = Fastify({
|
|
logger: true,
|
|
});
|
|
|
|
await fastify.register(middie);
|
|
await fastify.register(fastifyView, {
|
|
engine: {
|
|
ejs: ejs,
|
|
}
|
|
});
|
|
|
|
fastify.register(mainRoute(this.cache));
|
|
fastify.register(parseRoute(this.cache));
|
|
|
|
fastify.listen({ port: Number(this.config.get("PORT")) }, () => {
|
|
console.log(`Listening on port ${this.config.get("PORT")}`);
|
|
});
|
|
}
|
|
}
|
|
|
|
const app = new App();
|
|
app.init();
|