fox-wamp
Version:
Web Application Message Router/Server WAMP/MQTT
63 lines (50 loc) • 1.26 kB
text/typescript
import { promises as fsp } from 'fs'
export class Config {
private config: any = {}
async loadConfigFile (configFileName: string) {
return fsp
.readFile(configFileName)
.then(body => {
this.config = JSON.parse(body.toString())
})
}
// get(key: string) {
// return this.config[key]
// }
// set(key: string, value) {
// this.config[key] = value
// }
getEntryNodes () {
return this.config.entryNodes
}
getSyncNodes () {
return this.config.syncNodes
}
getSyncById (nodeId: string) {
const result = this.config.syncNodes[nodeId]
if (!result) {
throw Error('Sync node with id ' + nodeId + ' not found')
}
return result
}
getGateById (nodeId: string) {
const result = this.config.entryNodes[nodeId]
if (!result) {
throw Error('Entry node with id ' + nodeId + ' not found')
}
return result
}
getSyncQuorum () {
return this.config.syncQuorum || 2
}
}
let configInstance: Config | undefined = undefined
export function getConfigInstance (): Config {
if (!configInstance) {
configInstance = new Config()
}
return configInstance
}
export function setConfigInstance (config: Config): void {
configInstance = config
}