You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
38 lines
729 B
38 lines
729 B
import fastify from 'fastify'
|
|
import dotenv from 'dotenv'
|
|
import path from 'path'
|
|
|
|
// getting .env
|
|
dotenv.config({ path: path.join(path.resolve(), '/../../.env') })
|
|
|
|
// create server
|
|
const server = fastify()
|
|
|
|
|
|
// adding fastify-qs
|
|
import fastifyQs from 'fastify-qs'
|
|
|
|
server.register(fastifyQs)
|
|
|
|
// add rate limit
|
|
import rateLimit from '@fastify/rate-limit'
|
|
|
|
server.register(rateLimit, {
|
|
max: !process.env.APP_RATE_LIMIT_MAX ? 100 : process.env.APP_RATE_LIMIT_MAX,
|
|
timeWindow: !process.env.APP_RATE_LIMIT_TIMEWINDOW ? 60000 : process.env.APP_RATE_LIMIT_TIMEWINDOW
|
|
})
|
|
|
|
/**
|
|
* add routes
|
|
*
|
|
*
|
|
*/
|
|
import jsonHttp from './http/api/json.js'
|
|
|
|
server
|
|
.register(jsonHttp, {
|
|
'prefix': '/api'
|
|
})
|
|
|
|
export default server
|