UNPKG

mock-service-plugin

Version:
49 lines (45 loc) 1.74 kB
'use strict'; var Mock = require('mockjs'); var baseHandler = require('./base-handler.js'); class ImageResponseHandler extends baseHandler.BaseResponseHandler { async handle(req, res, route) { try { const contentType = this.getContentType(route); this.setHeaders(res, contentType); // 如果模板是字符串,假设它是图片路径 if (typeof route.responseTemplate === "string") { const imagePath = route.responseTemplate; const imageBuffer = await this.readFile(imagePath); res.send(imageBuffer); return; } // 如果是对象,尝试获取图片路径 const mockData = Mock.mock(route.responseTemplate); if (typeof mockData === "string") { const imagePath = mockData; const imageBuffer = await this.readFile(imagePath); res.send(imageBuffer); return; } throw new Error("Invalid image responseTemplate format"); } catch (error) { this.handleError(res, error instanceof Error ? error : new Error(String(error))); } } getContentType(route) { const extension = route.filepath ? route.filepath.split(".").pop()?.toLowerCase() || "" : ""; const contentTypeMap = { png: "image/png", jpg: "image/jpeg", jpeg: "image/jpeg", gif: "image/gif", svg: "image/svg+xml", }; return contentTypeMap[extension] || "image/png"; } } exports.ImageResponseHandler = ImageResponseHandler; //# sourceMappingURL=image-handler.js.map