import { Injectable } from '@angular/core'; import { Subject } from 'rxjs/Subject'; import * as WebTorrent from 'webtorrent'; @Injectable() export class WebTorrentService { errors = new Subject(); warnings = new Subject(); // TODO: use WebTorrent @type // private client: WebTorrent.Client; private client: any; constructor() { this.client = new WebTorrent({ dht: false }); this.client.on('error', (err) => this.errors.next(err)); this.client.on('warning', (err) => this.warnings.next(err)); } add(magnetUri: string, callback: Function) { return this.client.add(magnetUri, callback); } remove(magnetUri: string) { return this.client.remove(magnetUri); } has(magnetUri: string) { return this.client.get(magnetUri) !== null; } }