Integration with [GraphQL Upload](https://github.com/jaydenseric/graphql-upload)
npm install @graphql-ez/plugin-uploadIntegration with GraphQL Upload
This plugin currently only supports Fastify, Express and Koa. If you really need this plugin in another integration, feel free to create an issue or a PR proposing the solution.
> Make sure to have installed graphql-upload and @types/graphql-upload, since these are set as Peer Dependencies
> This plugin integrates automatically with the GraphQL Codegen plugin
``ts
import { ezUpload } from '@graphql-ez/plugin-upload';
const ezApp = CreateApp({
ez: {
plugins: [
// ...
ezUpload({
// UploadOptions
}),
],
},
// ...
});
`
`ts`
export interface UploadOptions {
maxFieldSize?: number;
maxFileSize?: number;
maxFiles?: number;
}
`ts
// You also can use a helper exported from this plugin
// that automatically converts the graphql-upload ReadStream
// into a more developer-friendly "Buffer"
import { readStreamToBuffer } from '@graphql-ez/plugin-upload';
// ...
({
// ...
typeDefs: [
// ...
gql
type Mutation {
uploadFileToBase64(file: Upload!): String!
}
,
],
resolvers: {
// ...
Mutation: {
async uploadFileToBase64(_root, { file }, _ctx) {
const fileBuffer = await readStreamToBuffer(file);
return fileBuffer.toString('base64');
},
},
},
});
``