UNPKG

@fairdatasociety/fairdrive-opfs

Version:

Fairdrive OPFS - integrate data sources from Web 2.0 or Web 3.0

36 lines (35 loc) 1.07 kB
import { Subject } from 'rxjs'; /** * FileSync is a class that handles file transfers between mounts and providers. * It is used by the FdpConnectProvider to handle file transfers. */ export class FileSync { /** * Creates a new FileSync instance. * @param transferToProvider ProviderDriver to transfer files to * @returns FileSync instance */ constructor(transferToProvider) { this.transferToProvider = transferToProvider; this.onStart = new Subject(); this.onComplete = new Subject(); this.onError = new Subject(); } /** * Moves a file from one mount to another * @param file File to transfer * @param mount Destination mount * @param onProgress */ async transfer(file, mount) { let res = {}; try { this.onStart.next({ file, mount }); res = await this.transferToProvider.upload(file, mount, {}); } catch (e) { this.onError.next(e); } this.onComplete.next({ result: res }); } }