marketing-post-generator-mcp
Version:
A powerful MCP server for AI-powered marketing blog post generation with Claude integration
42 lines • 1.97 kB
JavaScript
import { ErrorHandlingService } from './ErrorHandlingService';
import { RateLimitService } from '../../services/rateLimit/RateLimitService';
import { createMcpErrorWrapper } from '../errors/McpErrorWrapper';
import { createLogger } from '../../utils/logger';
// Service tokens
export const SERVICE_TOKENS = {
ERROR_HANDLING_SERVICE: 'ErrorHandlingService',
RATE_LIMIT_SERVICE: 'RateLimitService',
MCP_ERROR_WRAPPER: 'McpErrorWrapper',
LOGGER: 'Logger',
};
export function registerErrorHandlingServices(container, config) {
// Register logger
container.register(SERVICE_TOKENS.LOGGER, () => createLogger({ level: config.logging.level, format: config.logging.format }), true);
// Register error handling service
container.register(SERVICE_TOKENS.ERROR_HANDLING_SERVICE, () => new ErrorHandlingService(config.errorHandling), true);
// Register rate limit service
container.register(SERVICE_TOKENS.RATE_LIMIT_SERVICE, () => {
const logger = container.resolve(SERVICE_TOKENS.LOGGER);
return new RateLimitService(logger);
}, true);
// Register MCP error wrapper
container.register(SERVICE_TOKENS.MCP_ERROR_WRAPPER, () => {
const errorHandlingService = container.resolve(SERVICE_TOKENS.ERROR_HANDLING_SERVICE);
const logger = container.resolve(SERVICE_TOKENS.LOGGER);
return createMcpErrorWrapper(errorHandlingService.getErrorHandler(), logger);
}, true);
}
// Helper function to resolve services
export function getErrorHandlingService(container) {
return container.resolve(SERVICE_TOKENS.ERROR_HANDLING_SERVICE);
}
export function getRateLimitService(container) {
return container.resolve(SERVICE_TOKENS.RATE_LIMIT_SERVICE);
}
export function getMcpErrorWrapper(container) {
return container.resolve(SERVICE_TOKENS.MCP_ERROR_WRAPPER);
}
export function getLogger(container) {
return container.resolve(SERVICE_TOKENS.LOGGER);
}
//# sourceMappingURL=index.js.map