{"version":3,"sources":["../../src/service/ServiceDiscoveryService.ts"],"sourcesContent":["import Service, { ServiceAddress } from '../service/index.js';\n\n\n/* \n * @param {string} ip - the ip of the service discovery service\n * @param {string} host - the host of the service discovery service\n * @returns {Service} - the service object of the service discovery service\n */\n\nconst ServiceDiscoveryService = (host: string, port: string): Service => {\n    // This function will return the service object of the service discovery service\n    // this will have the logic for registering services and disvoring them on the network \n    // by other services peers\n    return new Service({\n        service_name: 'ServiceDiscoveryService',\n        peerServicesAddresses: [],\n        mastercallback,\n        slaveMethods: {\n            registerService,\n            getServices,\n        },\n        options: { \n            host, \n            port: parseInt(port) \n        },\n    });\n}\n\nconst mastercallback = async ({ self }: { self: Service }) => {\n    // create a list of services\n    await self.set([]); // set the list of services\n}\n\n// register a service\nconst registerService = async (service: ServiceAddress, { self }: { self: Service, service: Service }) => {\n    let services = await self.get();\n    services.push(service);\n    await self.set(services);\n    return 'ok';\n}\n    \n// get the list of services\nconst getServices = async (params: any, { self }: { self: Service }) => {\n    return await self.get();\n}\n\n\nexport default ServiceDiscoveryService;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAAwC;AASxC,MAAM,0BAA0B,CAAC,MAAc,SAA0B;AAIrE,SAAO,IAAI,eAAAA,QAAQ;AAAA,IACf,cAAc;AAAA,IACd,uBAAuB,CAAC;AAAA,IACxB;AAAA,IACA,cAAc;AAAA,MACV;AAAA,MACA;AAAA,IACJ;AAAA,IACA,SAAS;AAAA,MACL;AAAA,MACA,MAAM,SAAS,IAAI;AAAA,IACvB;AAAA,EACJ,CAAC;AACL;AAEA,MAAM,iBAAiB,OAAO,EAAE,KAAK,MAAyB;AAE1D,QAAM,KAAK,IAAI,CAAC,CAAC;AACrB;AAGA,MAAM,kBAAkB,OAAO,SAAyB,EAAE,KAAK,MAA2C;AACtG,MAAI,WAAW,MAAM,KAAK,IAAI;AAC9B,WAAS,KAAK,OAAO;AACrB,QAAM,KAAK,IAAI,QAAQ;AACvB,SAAO;AACX;AAGA,MAAM,cAAc,OAAO,QAAa,EAAE,KAAK,MAAyB;AACpE,SAAO,MAAM,KAAK,IAAI;AAC1B;AAGA,IAAO,kCAAQ;","names":["Service"]}