UNPKG

@memory-bank/mcp

Version:

Memory-enabled Co-Pilot (MCP) server for managing project documentation and context

70 lines 1.92 kB
/** * Simple dependency injection container */ export class DIContainer { services = new Map(); factories = new Map(); asyncFactories = new Set(); /** * Register a service instance * @param name Service name * @param instance Service instance */ register(name, instance) { this.services.set(name, instance); } registerFactory(name, factory) { this.factories.set(name, factory); if (factory.constructor.name === 'AsyncFunction') { this.asyncFactories.add(name); } } /** * Get a service by name * @param name Service name * @returns Service instance or Promise of service instance */ get(name) { if (this.services.has(name)) { return this.services.get(name); } if (this.factories.has(name)) { const factory = this.factories.get(name); if (this.asyncFactories.has(name)) { return (async () => { const instance = await factory(); this.services.set(name, instance); return instance; })(); } const instance = factory(); this.services.set(name, instance); return instance; } throw new Error(`Service not found: ${name}`); } /** * Check if a service is registered * @param name Service name * @returns True if service is registered */ has(name) { return this.services.has(name) || this.factories.has(name); } /** * Remove a service * @param name Service name */ remove(name) { this.services.delete(name); this.factories.delete(name); } /** * Clear all services */ clear() { this.services.clear(); this.factories.clear(); } } //# sourceMappingURL=DIContainer.js.map