marketing-post-generator-mcp
Version:
A powerful MCP server for AI-powered marketing blog post generation with Claude integration
55 lines • 1.51 kB
JavaScript
// Dependency Injection Container for the Marketing Post Generator MCP
export class DIContainer {
services = new Map();
factories = new Map();
singletons = new Set();
/**
* Register a service factory with the container
*/
register(token, factory, singleton = true) {
this.factories.set(token, factory);
if (singleton) {
this.singletons.add(token);
}
}
/**
* Resolve a service from the container
*/
resolve(token) {
// Return cached instance for singletons
if (this.singletons.has(token) && this.services.has(token)) {
return this.services.get(token);
}
const factory = this.factories.get(token);
if (!factory) {
throw new Error(`Service not registered: ${token}`);
}
const instance = factory();
// Cache singleton instances
if (this.singletons.has(token)) {
this.services.set(token, instance);
}
return instance;
}
/**
* Check if a service is registered
*/
has(token) {
return this.factories.has(token);
}
/**
* Clear all services and factories
*/
clear() {
this.services.clear();
this.factories.clear();
this.singletons.clear();
}
/**
* Get all registered service tokens
*/
getRegisteredTokens() {
return Array.from(this.factories.keys());
}
}
//# sourceMappingURL=DIContainer.js.map