Skip to content

Commit 04f6b24

Browse files
committed
wip
1 parent dfe41b6 commit 04f6b24

File tree

8 files changed

+220
-229
lines changed

8 files changed

+220
-229
lines changed

.vscode/settings.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
{
22
"editor.formatOnSave": true,
33
"editor.codeActionsOnSave": {
4-
"source.fixAll.eslint": true
4+
"source.fixAll.eslint": "explicit"
55
},
66
"[prisma]": {
77
"editor.defaultFormatter": "Prisma.prisma"
8-
},
8+
}
99
}

package.json

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,16 @@
1717
"@fastify/cors": "^8.2.0",
1818
"@fastify/helmet": "^10.0.2",
1919
"@fastify/response-validation": "^2.1.0",
20-
"@fastify/swagger": "^8.1.0",
21-
"@fastify/swagger-ui": "^1.2.0",
2220
"@prisma/client": "^4.6.1",
2321
"ajv-formats": "2.1.1",
24-
"fastify": "^4.9.2",
22+
"@fastify/swagger": "^8.3.1",
23+
"@fastify/swagger-ui": "^1.5.0",
24+
"fastify": "^4.14.1",
25+
"fastify-type-provider-zod": "^1.1.9",
2526
"http-status-codes": "^2.2.0",
26-
"pino-pretty": "^9.1.1"
27+
"pino-pretty": "^9.1.1",
28+
"zod": "^3.21.4"
29+
2730
},
2831
"devDependencies": {
2932
"@commitlint/cli": "^17.0.3",
@@ -47,7 +50,7 @@
4750
"ts-node-dev": "^2.0.0",
4851
"tsconfig-paths": "^4.0.0",
4952
"tscpaths": "^0.0.9",
50-
"typescript": "^4.7.4"
53+
"typescript": "^4.9.5"
5154
},
5255
"prisma": {
5356
"schema": "src/infrastructure/database/schema.prisma"

src/app.ts

Lines changed: 28 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,40 @@
11
import Fastify from 'fastify'
2+
import {
3+
serializerCompiler,
4+
validatorCompiler,
5+
ZodTypeProvider
6+
} from 'fastify-type-provider-zod'
7+
import fastifyCors from '@fastify/cors'
8+
import fastifyHelmet from '@fastify/helmet'
9+
import fastifySwagger from '@fastify/swagger'
10+
import fastifySwaggerUi from '@fastify/swagger-ui'
11+
import dotenv from './infrastructure/dotenv'
12+
213
import swagger from './infrastructure/swagger/swagger.opts'
314
import handler from './infrastructure/handler'
415
import errorHook from './infrastructure/error/error.hook'
516
import loggerOpts from './infrastructure/logger/logger.opts'
6-
import responseValidation from './infrastructure/response-validation.opts'
17+
import routes from './routes'
718

819
const app = Fastify({
920
logger: process.env.NODE_ENV !== 'test' ? loggerOpts : false,
1021
disableRequestLogging: true,
1122
})
1223

24+
app.withTypeProvider<ZodTypeProvider>()
25+
26+
app.addHook('onResponse', errorHook)
27+
28+
app.setErrorHandler(handler.errorHandler)
29+
app.setSerializerCompiler(serializerCompiler)
30+
app.setValidatorCompiler(validatorCompiler)
31+
app.setNotFoundHandler(handler.notFoundHandler)
32+
33+
app.register(fastifyCors)
34+
app.register(fastifyHelmet)
35+
app.register(fastifySwagger, swagger.swaggerOpts)
36+
app.register(fastifySwaggerUi, swagger.swaggerUiOpts)
37+
app.register(dotenv)
38+
app.register(routes)
39+
1340
export default app
14-
.addHook('onResponse', errorHook)
15-
.setErrorHandler(handler.errorHandler)
16-
.setNotFoundHandler(handler.notFoundHandler)
17-
.register(require('@fastify/response-validation'), responseValidation.ajvConfigOpts)
18-
.register(require('@fastify/cors'))
19-
.register(require('@fastify/helmet'))
20-
.register(require('@fastify/swagger'), swagger.swaggerOpts)
21-
.register(require('@fastify/swagger-ui'), swagger.swaggerUiOpts)
22-
.register(require('./infrastructure/dotenv'))
23-
.register(require('./routes'))

src/infrastructure/swagger/swagger.opts.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { FastifyDynamicSwaggerOptions } from '@fastify/swagger'
22
import { FastifySwaggerUiOptions } from '@fastify/swagger-ui'
3+
import { jsonSchemaTransform } from 'fastify-type-provider-zod'
34

45
const swaggerOpts: FastifyDynamicSwaggerOptions = {
56
mode: 'dynamic',
@@ -22,6 +23,7 @@ const swaggerOpts: FastifyDynamicSwaggerOptions = {
2223
},
2324

2425
},
26+
transform: jsonSchemaTransform,
2527
hideUntagged: true,
2628
}
2729

0 commit comments

Comments
 (0)