1 | import { sites as rawSites } from './data';
|
2 | import { checker } from './lib';
|
3 |
|
4 |
|
5 | interface Imessage {
|
6 | userName: string;
|
7 | siteName: string;
|
8 | uri: string;
|
9 | exist: boolean;
|
10 | }
|
11 |
|
12 | class 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(async siteName => {
|
28 | const message = await this.checkFor(siteName);
|
29 | return message;
|
30 | })
|
31 | );
|
32 | return messages;
|
33 | }
|
34 |
|
35 | async checkFor(siteName: string): Promise<Imessage> {
|
36 | const message = await checker(siteName, this.userName);
|
37 | return message;
|
38 | }
|
39 | }
|
40 |
|
41 | export default JsherLock;
|
42 |
|
43 | export { Imessage };
|
44 |
|
45 | module.exports = JsherLock;
|
46 | module.exports.default = JsherLock;
|