UNPKG

@devvai/devv-code-backend

Version:

Backend SDK for Devv Code - Provides authentication, data management, email and AI capabilities

49 lines (48 loc) 1.64 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.FileUpload = void 0; const device_1 = require("./device"); const session_1 = require("./session"); const constants_1 = require("./constants"); class FileUpload { async uploadFile(file) { const endpoint = `${constants_1.BASE_URL}api/v1/upload-file`; const deviceId = (0, device_1.getEncryptedDeviceId)(); const sid = (0, session_1.getSid)(); const formData = new FormData(); formData.append('file', file); const headers = { 'Device-Id': deviceId, }; if (sid) { headers['sid'] = sid; } try { const response = await fetch(endpoint, { method: 'POST', headers, body: formData, credentials: 'include', }); const data = await response.json(); if (!response.ok) { const errorData = data; if (errorData && typeof errorData === 'object' && 'errCode' in errorData && 'errMsg' in errorData) { throw new Error(errorData.errMsg); } throw new Error(`Upload failed with status ${response.status}`); } return data; } catch (error) { if (error instanceof Error) { throw error; } throw new Error('Failed to upload file'); } } isErrorResponse(response) { return 'errCode' in response && 'errMsg' in response; } } exports.FileUpload = FileUpload;