import { Utils } from "../../misc/utils"; import { EncArrayBuffer } from "../../models/domain/enc-array-buffer"; export class BitwardenFileUploadService { async upload( encryptedFileName: string, encryptedFileData: EncArrayBuffer, apiCall: (fd: FormData) => Promise ) { const fd = new FormData(); try { const blob = new Blob([encryptedFileData.buffer], { type: "application/octet-stream" }); fd.append("data", blob, encryptedFileName); } catch (e) { if (Utils.isNode && !Utils.isBrowser) { fd.append( "data", Buffer.from(encryptedFileData.buffer) as any, { filepath: encryptedFileName, contentType: "application/octet-stream", } as any ); } else { throw e; } } await apiCall(fd); } }