UNPKG

mock-service-plugin

Version:
42 lines (38 loc) 1.66 kB
'use strict'; var jsonHandler = require('./json-handler.js'); var sseHandler = require('./sse-handler.js'); var textHandler = require('./text-handler.js'); var xmlHandler = require('./xml-handler.js'); var csvHandler = require('./csv-handler.js'); var imageHandler = require('./image-handler.js'); var constant = require('../constant.js'); const CONTENT_TYPE_HANDLERS = { "application/json": jsonHandler.JsonResponseHandler, "text/event-stream": sseHandler.SseResponseHandler, "text/plain": textHandler.TextResponseHandler, "text/html": textHandler.TextResponseHandler, "text/markdown": textHandler.TextResponseHandler, "text/css": textHandler.TextResponseHandler, "application/javascript": textHandler.TextResponseHandler, "application/xml": xmlHandler.XmlResponseHandler, "text/csv": csvHandler.CsvResponseHandler, "image/png": imageHandler.ImageResponseHandler, "image/jpeg": imageHandler.ImageResponseHandler, "image/gif": imageHandler.ImageResponseHandler, "image/svg+xml": imageHandler.ImageResponseHandler, // 可以在这里添加更多处理器 }; class ResponseHandlerFactory { static getHandler(contentType) { const HandlerClass = CONTENT_TYPE_HANDLERS[contentType]; if (!HandlerClass) { throw new Error(`No handler found for content type: ${contentType}`); } return new HandlerClass(); } static getContentTypeByExtension(extension) { return constant.CONTENT_TYPES[extension.toLowerCase()] || "application/json"; } } exports.ResponseHandlerFactory = ResponseHandlerFactory; //# sourceMappingURL=handler-factory.js.map