neura-express-app
Version:
Basic express application starter with some common utilities.
35 lines (34 loc) • 1.12 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.NeuraContainer = void 0;
class NeuraContainer {
constructor() {
this.services = new Map();
//
}
static instance() {
if (NeuraContainer._instance) {
return NeuraContainer._instance;
}
NeuraContainer._instance = new NeuraContainer();
return NeuraContainer._instance;
}
set(serviceName, service) {
if (!this.logger) {
this.logger = this.get("logger");
}
if (this.services.has(serviceName)) {
this.logger?.warn(`Container: Container property '${serviceName}' was already defined, it will be overwritten!`);
}
this.services.set(serviceName, service);
this.logger?.info(`Container: New property registered: '${serviceName}' of type ${typeof service}`);
return service;
}
get(serviceName) {
if (!this.services.has(serviceName)) {
return undefined;
}
return this.services.get(serviceName);
}
}
exports.NeuraContainer = NeuraContainer;