import {Conf} from './types/conf' import * as yaml from 'js-yaml'; import * as fs from 'fs'; import {ws2pWatcher} from "./watchers/ws2p/ws2p-watcher"; import {bmaWatcher} from "./watchers/bma/bma-watcher"; import {dprobeHeartbeat} from './watchers/dprobe/dprobe-heartbeat-watcher' import {webDiffWatcher} from "./watchers/webdiff/webdiff-watcher"; import {Watcher} from "./types/state"; import {headWatcher} from "./watchers/bma/head-watcher"; import {jsonWatcher} from "./watchers/wotwizard/json-watcher"; export async function dwatch(confFile: string) { const yml = fs.readFileSync(confFile, 'utf8') const conf = yaml.load(yml) as Conf const watchers: Watcher[] = []; (await Promise.all((conf.ws2pServers || []).map(ws2pWatcher(conf)))).forEach(w => watchers.push(w)); (await Promise.all((conf.bmaServers || []).map(bmaWatcher(conf)))).forEach(w => watchers.push(w)); (await Promise.all((conf.dprobeHeartbeats || []).map(dprobeHeartbeat(conf)))).forEach(w => watchers.push(w)); (await Promise.all((conf.webDiffServers || []).map(webDiffWatcher(conf)))).forEach(w => watchers.push(w)); (await Promise.all((conf.headServers || []).map(headWatcher(conf)))).forEach(w => watchers.push(w)); (await Promise.all((conf.wwMeta || []).map(jsonWatcher(conf)))).forEach(w => watchers.push(w)); return watchers }