Events
The SDK provides events for tracking the state signing and uploading data to Turbo. You can listen to these events by providing a callback function to the events
parameter of the upload
, uploadFile
, and uploadSignedDataItem
methods.
onProgress
- emitted when the overall progress changes (includes both upload and signing). Each event consists of the total bytes, processed bytes, and the step (upload or signing)onError
- emitted when the overall upload or signing fails (includes both upload and signing)onSuccess
- emitted when the overall upload or signing succeeds (includes both upload and signing) - this is the last event emitted for the upload or signing processonSigningProgress
- emitted when the signing progress changes.onSigningError
- emitted when the signing fails.onSigningSuccess
- emitted when the signing succeedsonUploadProgress
- emitted when the upload progress changesonUploadError
- emitted when the upload failsonUploadSuccess
- emitted when the upload succeeds
const uploadResult = await turbo.upload({
data: 'The contents of my file!',
signal: AbortSignal.timeout(10_000), // cancel the upload after 10 seconds
dataItemOpts: {
// optional
},
events: {
// overall events (includes signing and upload events)
onProgress: ({ totalBytes, processedBytes, step }) => {
const percentComplete = (processedBytes / totalBytes) * 100;
console.log('Overall progress:', {
totalBytes,
processedBytes,
step,
percentComplete: percentComplete.toFixed(2) + '%', // eg 50.68%
});
},
onError: (error) => {
console.log('Overall error:', { error });
},
onSuccess: () => {
console.log('Signed and upload data item!');
},
// upload events
onUploadProgress: ({ totalBytes, processedBytes }) => {
console.log('Upload progress:', { totalBytes, processedBytes });
},
onUploadError: (error) => {
console.log('Upload error:', { error });
},
onUploadSuccess: () => {
console.log('Upload success!');
},
// signing events
onSigningProgress: ({ totalBytes, processedBytes }) => {
console.log('Signing progress:', { totalBytes, processedBytes });
},
onSigningError: (error) => {
console.log('Signing error:', { error });
},
onSigningSuccess: () => {
console.log('Signing success!');
},
},
});
How is this guide?