@uppy/aws-s3-multipart
Version:
Upload to Amazon S3 with Uppy and S3's Multipart upload strategy
49 lines (46 loc) • 1.46 kB
text/typescript
import { expectError, expectType } from 'tsd'
import Uppy from '@uppy/core'
import type { UppyFile } from '@uppy/core'
import AwsS3Multipart from '..'
import type { AwsS3Part } from '..'
{
const uppy = new Uppy()
uppy.use(AwsS3Multipart, {
createMultipartUpload (file) {
expectType<UppyFile>(file)
return { uploadId: '', key: '' }
},
listParts (file, opts) {
expectType<UppyFile>(file)
expectType<string>(opts.uploadId)
expectType<string>(opts.key)
return []
},
prepareUploadParts (file, partData) {
expectType<UppyFile>(file)
expectType<string>(partData.uploadId)
expectType<string>(partData.key)
expectType<[{number: number, chunk: Blob}]>(partData.parts)
return { presignedUrls: {} }
},
abortMultipartUpload (file, opts) {
expectType<UppyFile>(file)
expectType<string>(opts.uploadId)
expectType<string>(opts.key)
},
completeMultipartUpload (file, opts) {
expectType<UppyFile>(file)
expectType<string>(opts.uploadId)
expectType<string>(opts.key)
expectType<AwsS3Part>(opts.parts[0])
return {}
},
})
}
{
const uppy = new Uppy()
expectError(uppy.use(AwsS3Multipart, { getChunkSize: 100 }))
expectError(uppy.use(AwsS3Multipart, { getChunkSize: () => 'not a number' }))
uppy.use(AwsS3Multipart, { getChunkSize: () => 100 })
uppy.use(AwsS3Multipart, { getChunkSize: (file) => file.size })
}