Skip to content

Instantly share code, notes, and snippets.

@stemmlerjs
Created February 13, 2020 16:50
Show Gist options
  • Select an option

  • Save stemmlerjs/8c0c30aa87d895dea6b1e98dd7c7b1a8 to your computer and use it in GitHub Desktop.

Select an option

Save stemmlerjs/8c0c30aa87d895dea6b1e98dd7c7b1a8 to your computer and use it in GitHub Desktop.
async singleFileUploadResolver(
parent,
{ file }: { file: Promise<ApolloServerFileUploads.File> }
): Promise<ApolloServerFileUploads.UploadedFileResponse> {
const { stream, filename, mimetype, encoding } = await file;
// Create the destination file path
const filePath = this.createDestinationFilePath(
filename,
mimetype,
encoding
);
// Create an upload stream that goes to S3
const uploadStream = this.createUploadStream(filePath);
// Pipe the file data into the upload stream
stream.pipe(uploadStream.writeStream);
// Start the stream
const result = await uploadStream.promise;
// Get the link representing the uploaded file
// (optional) save it to our database
return { filename, mimetype, encoding, url: '' };
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment