UNPKG

slavery-js

Version:

A simple clustering app that allows you to scale an application on multiple thread, containers or machines

1 lines 3.65 kB
{"version":3,"sources":["../../../src/app/peerDiscovery/PeerDiscoveryClient.ts"],"sourcesContent":["import Network from '../../network/index.js';\nimport { log } from '../../utils/index.js';\n\ntype params = {\n name?: string,\n host: string,\n port: number,\n}\n\n\nclass PeerDiscoveryClient {\n /* this class will be used to connect to a the peer discovery server */\n public name: string = 'peer_discovery';\n public host: string;\n public port: number;\n public network?: Network = new Network({ name: 'peer_discovery' });\n // the time we give every service to register, before we get the services\n public windowTime = 2000; // 2 seconds\n // get the network from the connection\n constructor({ host, port, name }: params) {\n this.name = name || 'peer_discovery';\n this.host = host;\n this.port = port;\n }\n\n public async connect(){\n // connect to server\n if(this.network === undefined) throw new Error('Network not set');\n await this.network.connect({\n name: this.name,\n host: this.host,\n port: this.port,\n });\n }\n\n public async register({ host, port, name }: params) {\n if(this.network === undefined) throw new Error('Network not set');\n let connection = this.network.getService(this.name);\n if(connection === null) throw new Error(`Service ${this.name} not found`);\n return await connection.send('register_service', { host, port, name });\n }\n\n public async getServices() {\n // await for the window time\n await new Promise((resolve) => setTimeout(resolve, this.windowTime));\n if(this.network === undefined) throw new Error('Network not set');\n let connection = this.network.getService(this.name);\n if(connection === null) throw new Error(`Service ${this.name} not found`);\n let services = await connection.send('get_services');\n return services;\n }\n\n public async exit() {\n if(this.network === undefined) throw new Error('Network not set');\n let connection = this.network.getService(this.name);\n if(connection === null) throw new Error(`Service ${this.name} not found`);\n return await connection.send('exit');\n }\n\n}\n\nexport default PeerDiscoveryClient;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAAoB;AAUpB,MAAM,oBAAoB;AAAA;AAAA;AAAA,EAStB,YAAY,EAAE,MAAM,MAAM,KAAK,GAAW;AAP1C;AAAA,wBAAO,QAAe;AACtB,wBAAO;AACP,wBAAO;AACP,wBAAO,WAAoB,IAAI,eAAAA,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEjE;AAAA,wBAAO,cAAa;AAGhB,SAAK,OAAO,QAAQ;AACpB,SAAK,OAAO;AACZ,SAAK,OAAO;AAAA,EAChB;AAAA,EAEA,MAAa,UAAS;AAElB,QAAG,KAAK,YAAY,OAAW,OAAM,IAAI,MAAM,iBAAiB;AAChE,UAAM,KAAK,QAAQ,QAAQ;AAAA,MACvB,MAAM,KAAK;AAAA,MACX,MAAM,KAAK;AAAA,MACX,MAAM,KAAK;AAAA,IACf,CAAC;AAAA,EACL;AAAA,EAEA,MAAa,SAAS,EAAE,MAAM,MAAM,KAAK,GAAW;AAChD,QAAG,KAAK,YAAY,OAAW,OAAM,IAAI,MAAM,iBAAiB;AAChE,QAAI,aAAa,KAAK,QAAQ,WAAW,KAAK,IAAI;AAClD,QAAG,eAAe,KAAM,OAAM,IAAI,MAAM,WAAW,KAAK,IAAI,YAAY;AACxE,WAAO,MAAM,WAAW,KAAK,oBAAoB,EAAE,MAAM,MAAM,KAAK,CAAC;AAAA,EACzE;AAAA,EAEA,MAAa,cAAc;AAEvB,UAAM,IAAI,QAAQ,CAAC,YAAY,WAAW,SAAS,KAAK,UAAU,CAAC;AACnE,QAAG,KAAK,YAAY,OAAW,OAAM,IAAI,MAAM,iBAAiB;AAChE,QAAI,aAAa,KAAK,QAAQ,WAAW,KAAK,IAAI;AAClD,QAAG,eAAe,KAAM,OAAM,IAAI,MAAM,WAAW,KAAK,IAAI,YAAY;AACxE,QAAI,WAAW,MAAM,WAAW,KAAK,cAAc;AACnD,WAAO;AAAA,EACX;AAAA,EAEA,MAAa,OAAO;AAChB,QAAG,KAAK,YAAY,OAAW,OAAM,IAAI,MAAM,iBAAiB;AAChE,QAAI,aAAa,KAAK,QAAQ,WAAW,KAAK,IAAI;AAClD,QAAG,eAAe,KAAM,OAAM,IAAI,MAAM,WAAW,KAAK,IAAI,YAAY;AACxE,WAAO,MAAM,WAAW,KAAK,MAAM;AAAA,EACvC;AAEJ;AAEA,IAAO,8BAAQ;","names":["Network"]}