Open sinedied opened 12 months ago
4.22.0
2.2.2
18.16.0
macOS
12.6.8
Using FastifyPluginAsyncJsonSchemaToTs along with the shared schema from @fastify/multipart generates a circular type error:
FastifyPluginAsyncJsonSchemaToTs
@fastify/multipart
[TypeScript] src/routes/indexes/index.ts:104:40 - error TS2615: Type of property 'file' circularly references itself in mapped type '{ file: Never; }'. [TypeScript] [TypeScript] 104 const { file } = request.body; [TypeScript] ~~~~~~~~~~~~
import fp from 'fastify-plugin'; import multipart from '@fastify/multipart';
export default fp(async (fastify) => { fastify.register(multipart, { attachFieldsToBody: true, sharedSchemaId: '#multipartField', }); });
2. Create a route that references the shared schema: ```ts import { FastifyPluginAsyncJsonSchemaToTs } from '@fastify/type-provider-json-schema-to-ts'; const root: FastifyPluginAsyncJsonSchemaToTs = async (fastify, opts): Promise<void> => { fastify.post('/upload', { schema: { body: { type: 'object', properties: { file: { $ref: '#multipartField' }, }, required: ['file'], }, } as const, handler: async function (request, reply) { const { file } = request.body; } }); });
No error
Prerequisites
Fastify version
4.22.0
Plugin version
2.2.2
Node.js version
18.16.0
Operating system
macOS
Operating system version (i.e. 20.04, 11.3, 10)
12.6.8
Description
Using
FastifyPluginAsyncJsonSchemaToTs
along with the shared schema from@fastify/multipart
generates a circular type error:Steps to Reproduce
@fastify/multipart
in a test project with these options:export default fp(async (fastify) => { fastify.register(multipart, { attachFieldsToBody: true, sharedSchemaId: '#multipartField', }); });
Expected Behavior
No error