UNPKG

1.08 kBPlain TextView Raw
1import { sites as rawSites } from './data';
2import { checker } from './lib';
3
4//checking status mesasge interface
5interface Imessage {
6 userName: string;
7 siteName: string;
8 uri: string;
9 exist: boolean;
10}
11
12class JsherLock {
13 private userName: string;
14 private sites: string[];
15
16 constructor(userName: string) {
17 this.userName = userName;
18 this.sites = new Array(...rawSites);
19 }
20
21 static sites(): string[] {
22 return rawSites;
23 }
24
25 async checkAll(): Promise<Imessage[]> {
26 const messages = await Promise.all(
27 rawSites.map(siteName => {
28 return new Promise<Imessage>(async (resolve, reject) => {
29 const message = await this.checkFor(siteName);
30 resolve(message);
31 });
32 })
33 );
34 return messages;
35 }
36
37 async checkFor(siteName: string): Promise<Imessage> {
38 try {
39 const message = await checker(siteName, this.userName);
40 return message;
41 } catch (e) {
42 throw e;
43 }
44 }
45}
46
47export default JsherLock;
48
49export { Imessage };
50
51module.exports = JsherLock;
52module.exports.default = JsherLock;
53
\No newline at end of file