-// Don't use webtorrent typings for now
-// It misses some little things I'll fix later
-// <reference path="../../../../typings/globals/webtorrent/index.d.ts" />
+import { Injectable } from '@angular/core'
+import { Subject } from 'rxjs/Subject'
-import { Injectable } from '@angular/core';
-
-// import WebTorrent = require('webtorrent');
-declare var WebTorrent: any;
+import * as WebTorrent from 'webtorrent'
@Injectable()
export class WebTorrentService {
- // private client: WebTorrent.Client;
- private client: any;
+ errors = new Subject<Error>()
+ warnings = new Subject<Error>()
+
+ // 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))
+ }
- constructor() {
- this.client = new WebTorrent({ dht: false });
+ add (magnetUri: string, callback: Function) {
+ return this.client.add(magnetUri, callback)
}
- add(magnetUri: string, callback: Function) {
- return this.client.add(magnetUri, callback);
+ remove (magnetUri: string) {
+ return this.client.remove(magnetUri)
}
- remove(magnetUri: string) {
- return this.client.remove(magnetUri);
+ has (magnetUri: string) {
+ return this.client.get(magnetUri) !== null
}
}