yarn add @graphql-ez/plugin-upload graphql-upload
yarn add -D @types/graphql-upload
pnpm add @graphql-ez/plugin-upload graphql-upload
pnpm add -D @types/graphql-upload
npm install @graphql-ez/plugin-upload graphql-upload
npm install -D @types/graphql-upload
Integration 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-upload
MIT
0.8.0
Dec 18th, 2022