mcp-image-placeholder
Version:
MCP server for generating placeholder images using placehold.co and picsum.photos
45 lines • 2.19 kB
JavaScript
/**
* Main entry point for MCP Image Placeholder package
* Provides both programmatic API and backward compatibility
*/
// Export core classes for programmatic usage
export { PlaceholderValidator } from './core/validator.js';
export { PlaceholderGenerator } from './core/placeholderGenerator.js';
export { MCPImagePlaceholderServer } from './core/mcpServer.js';
// Export configuration factories
export { createConfig, createValidationConstraints, createProviderConfig, DEFAULT_CONFIG, DEFAULT_CONSTRAINTS, DEFAULT_PROVIDER_CONFIG, } from './config/index.js';
// Export utility functions
export { createLogger } from './utils/logger.js';
// Export error classes
export { ImagePlaceholderError, ValidationError, ProviderError, ConfigurationError, ServerError, } from './errors/index.js';
// Backward compatibility: Legacy function that matches original API
import { PlaceholderValidator } from './core/validator.js';
import { createValidationConstraints, createProviderConfig } from './config/index.js';
/**
* Legacy function for backward compatibility with original API
*
* @deprecated Use PlaceholderGenerator class for better error handling and logging
* @param provider - Image provider ('placehold' or 'lorem-picsum')
* @param width - Image width (1-10000)
* @param height - Image height (1-10000)
* @returns Promise resolving to image URL string
* @throws {Error} When parameters are invalid
*/
export function image_placeholder(provider, width, height) {
const constraints = createValidationConstraints();
const providerConfig = createProviderConfig();
const validator = new PlaceholderValidator(constraints);
// Validate and generate synchronously for backward compatibility
validator.validateParams({ provider, width, height });
// Extract URL generation logic for synchronous operation
const config = providerConfig[provider];
if (!config) {
throw new Error(`Invalid provider: ${provider}`);
}
const url = config.urlTemplate
.replace('{baseUrl}', config.baseUrl)
.replace('{width}', width.toString())
.replace('{height}', height.toString());
return url;
}
//# sourceMappingURL=index.js.map