mirror of
https://github.com/bluewave-labs/Checkmate.git
synced 2026-02-05 08:38:33 -06:00
40 lines
788 B
JavaScript
Executable File
40 lines
788 B
JavaScript
Executable File
const SERVICE_NAME = "ServiceRegistry";
|
|
import logger from "../../utils/logger.js";
|
|
class ServiceRegistry {
|
|
static SERVICE_NAME = SERVICE_NAME;
|
|
constructor() {
|
|
this.services = {};
|
|
}
|
|
|
|
get serviceName() {
|
|
return ServiceRegistry.SERVICE_NAME;
|
|
}
|
|
|
|
register(name, service) {
|
|
logger.info({
|
|
message: `Registering service ${name}`,
|
|
service: SERVICE_NAME,
|
|
method: "register",
|
|
});
|
|
this.services[name] = service;
|
|
}
|
|
|
|
get(name) {
|
|
if (!this.services[name]) {
|
|
logger.error({
|
|
message: `Service ${name} is not registered`,
|
|
service: SERVICE_NAME,
|
|
method: "get",
|
|
});
|
|
throw new Error(`Service ${name} is not registered`);
|
|
}
|
|
return this.services[name];
|
|
}
|
|
|
|
listServices() {
|
|
return Object.keys(this.services);
|
|
}
|
|
}
|
|
|
|
export default new ServiceRegistry();
|