diff --git a/src/OneBlinkUploader.ts b/src/OneBlinkUploader.ts index be7bffc..1c9b4db 100644 --- a/src/OneBlinkUploader.ts +++ b/src/OneBlinkUploader.ts @@ -354,4 +354,48 @@ export default class OneBlinkUploader { isPublic: true, }) } + + /** + * Upload form prefill data. + * + * #### Example + * + * ```ts + * const abortController = new AbortController() + * const result = await uploader.uploadPrefillData({ + * onProgress: (progress) => { + * // ... + * }, + * data: { + * field1: 'abc', + * field2: 123, + * }, + * formId: 12, + * abortSignal: abortController.signal, + * }) + * ``` + * + * @param data The prefill upload data and options + * @returns The upload result + */ + async uploadPrefillData({ + formId, + prefillData, + onProgress, + abortSignal, + }: UploadOptions & { + /** The identifier for the form that the prefill data is associated with */ + formId: number + /** The prefill data to upload */ + prefillData: SubmissionTypes.NewS3SubmissionData['submission'] + }) { + return await uploadToS3({ + ...this, + contentType: 'application/json', + body: JSON.stringify(prefillData), + key: `forms/${formId}/pre-fill`, + abortSignal, + onProgress, + }) + } }