yarn add @graphql-ez/plugin-upload graphql-upload
yarn add -D @types/graphql-uploadpnpm add @graphql-ez/plugin-upload graphql-upload
pnpm add -D @types/graphql-uploadnpm install @graphql-ez/plugin-upload graphql-upload
npm install -D @types/graphql-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
import { ezUpload } from '@graphql-ez/plugin-upload';
const ezApp = CreateApp({
  ez: {
    plugins: [
      // ...
      ezUpload({
        // UploadOptions
      }),
    ],
  },
  // ...
});
export interface UploadOptions {
  maxFieldSize?: number;
  maxFileSize?: number;
  maxFiles?: number;
}
// 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');
      },
    },
  },
});
@graphql-ez/plugin-uploadMIT0.7.2May 18th, 2022