Skip to content

Commit

Permalink
Use capabilities for create-with-upload option
Browse files Browse the repository at this point in the history
  • Loading branch information
JammingBen committed Jun 13, 2022
1 parent f523943 commit ed90177
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 1 deletion.
4 changes: 4 additions & 0 deletions packages/web-pkg/src/composables/capability/useCapability.ts
Original file line number Diff line number Diff line change
Expand Up @@ -43,3 +43,7 @@ export const useCapabilityFilesTusSupportMaxChunkSize = createCapabilityComposab
'files.tus_support.max_chunk_size',
0
)
export const useCapabilityFilesTusExtension = createCapabilityComposable<string>(
'files.tus_support.extension',
''
)
3 changes: 3 additions & 0 deletions packages/web-runtime/src/composables/upload/useUpload.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import { ClientService } from 'web-pkg/src/services'
import {
useCapabilityFilesTusExtension,
useCapabilityFilesTusSupportHttpMethodOverride,
useCapabilityFilesTusSupportMaxChunkSize,
useClientService,
Expand Down Expand Up @@ -53,6 +54,7 @@ export function useUpload(options: UploadOptions): UploadResult {

const tusHttpMethodOverride = useCapabilityFilesTusSupportHttpMethodOverride()
const tusMaxChunkSize = useCapabilityFilesTusSupportMaxChunkSize()
const tusExtension = useCapabilityFilesTusExtension()
const uploadChunkSize = computed((): number => store.getters.configuration.uploadChunkSize)

const headers = computed((): { [key: string]: string } => {
Expand All @@ -78,6 +80,7 @@ export function useUpload(options: UploadOptions): UploadResult {
tusMaxChunkSize: unref(tusMaxChunkSize),
uploadChunkSize: unref(uploadChunkSize),
tusHttpMethodOverride: unref(tusHttpMethodOverride),
tusExtension: unref(tusExtension),
headers: unref(headers)
}
}
Expand Down
6 changes: 5 additions & 1 deletion packages/web-runtime/src/services/uppyService.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,25 +34,29 @@ export class UppyService {
tusMaxChunkSize,
uploadChunkSize,
tusHttpMethodOverride,
tusExtension,
headers
}: {
tusMaxChunkSize: number
uploadChunkSize: number
tusHttpMethodOverride: boolean
tusExtension: string
headers: { [key: string]: string }
}) {
const chunkSize =
tusMaxChunkSize > 0 && uploadChunkSize !== Infinity
? Math.max(tusMaxChunkSize, uploadChunkSize)
: uploadChunkSize

const uploadDataDuringCreation = tusExtension.includes('creation-with-upload')

const tusPluginOptions = {
headers: headers,
chunkSize: chunkSize,
removeFingerprintOnSuccess: true,
overridePatchMethod: !!tusHttpMethodOverride,
retryDelays: [0, 500, 1000],
uploadDataDuringCreation: true
uploadDataDuringCreation
}

const xhrPlugin = this.uppy.getPlugin('XHRUpload')
Expand Down

0 comments on commit ed90177

Please sign in to comment.