forked from NativeScript/nativescript-unit-test-runner
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathkarma-host-resolver.ts
36 lines (32 loc) · 1.2 KB
/
karma-host-resolver.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
export class KarmaHostResolver implements IKarmaHostResolver {
constructor(private http) { }
public resolveKarmaHost(ips: string[], port: number): Promise<string> {
return new Promise<string>(resolve => {
let foundKarma = false;
const resolvers = ips.map(ip => {
const karmaClientUrl = `http://${ip}:${port}/context.json`;
console.log(`NSUTR: fetching ${karmaClientUrl}`);
return this.http.getString({
url: karmaClientUrl,
method: 'GET',
timeout: 3000,
}).then(() => {
console.log(`NSUTR: found karma at ${ip}`);
if (!foundKarma) {
foundKarma = true;
resolve(ip);
}
}, (err) => {
console.log(`NSUTR: error fetching ${karmaClientUrl}`, err);
return undefined;
})
});
Promise.all(resolvers)
.then(() => {
if (!foundKarma) {
resolve(null);
}
})
});
}
}