MCPcopy Create free account
hub / github.com/CommE2E/comm / appendFile

Method appendFile

web/input/input-state-container.react.js:785–890  ·  view source on GitHub ↗
(
    threadInfo: ThreadInfo,
    file: File,
    selectTime: number,
  )

Source from the content-addressed store, hash-verified

783 }
784
785 async appendFile(
786 threadInfo: ThreadInfo,
787 file: File,
788 selectTime: number,
789 ): Promise<{
790 steps: $ReadOnlyArray<MediaMissionStep>,
791 result:
792 | MediaMissionFailure
793 | { success: true, pendingUpload: PendingMultimediaUpload },
794 }> {
795 const steps: MediaMissionStep[] = [
796 {
797 step: 'web_selection',
798 filename: file.name,
799 size: file.size,
800 mime: file.type,
801 selectTime,
802 },
803 ];
804
805 let response;
806 const validationStart = Date.now();
807 try {
808 response = await validateFile(file);
809 } catch (e) {
810 return {
811 steps,
812 result: {
813 success: false,
814 reason: 'processing_exception',
815 time: Date.now() - validationStart,
816 exceptionMessage: getMessageForException(e),
817 },
818 };
819 }
820 const { steps: validationSteps, result } = response;
821 steps.push(...validationSteps);
822 if (!result.success) {
823 return { steps, result };
824 }
825 const { uri, file: fixedFile, mediaType, dimensions } = result;
826
827 const supportsEncryptedMultimedia =
828 threadSpecs[threadInfo.type].protocol().supportsEncryptedMultimedia;
829
830 let encryptionResult;
831 if (supportsEncryptedMultimedia) {
832 let encryptionResponse;
833 const encryptionStart = Date.now();
834 try {
835 encryptionResponse = await encryptFile(fixedFile);
836 } catch (e) {
837 return {
838 steps,
839 result: {
840 success: false,
841 reason: 'encryption_exception',
842 time: Date.now() - encryptionStart,

Callers 1

appendFilesMethod · 0.95

Calls 6

validateFileFunction · 0.90
getMessageForExceptionFunction · 0.90
encryptFileFunction · 0.90
generateThumbHashFunction · 0.90
getNextLocalUploadIDFunction · 0.90
pushMethod · 0.80

Tested by

no test coverage detected