UNPKG

apim-tools

Version:

APIM Tools

74 lines (63 loc) 1.59 kB
/** * @file mock 处理器的助手方法 * @author sparklewhy@gmail.com */ 'use strict'; const isPlainObject = require('lodash.isplainobject'); const config = require('./config'); const TPL_TYPE = config.TPL_TYPE; /** * 获取处理器名称 * * @param {number} tplType 模板类型 * @return {string} */ exports.getProcessorName = function (tplType) { if (tplType === TPL_TYPE.SMARTY) { return 'smarty'; } else if (tplType === TPL_TYPE.ETPL) { return 'etpl'; } }; /** * 获取 mock 的数据: 滤掉一些预定义的特殊字段的数据 * * @param {*} data 原始数据 * @return {*} */ exports.normalizeMockData = function (data) { if (!data || !isPlainObject(data)) { return data; } let mockData = data._data; if (!mockData) { mockData = {}; const reservedDataKeys = config.reservedDataKeys; Object.keys(data).forEach(k => { if (reservedDataKeys.indexOf(k) === -1) { mockData[k] = data[k]; } }); } return mockData; }; /** * 获取 mock 响应的预定义数据信息 * * @param {Object} mockData mock 数据 * @return {Object} */ exports.getReservedDataInfo = function (mockData) { if (!mockData || !isPlainObject(mockData)) { return mockData; } let result = {}; const reservedDataKeys = config.reservedDataKeys; Object.keys(mockData).forEach(k => { if (k !== '_data' && reservedDataKeys.indexOf(k) !== -1) { result[k] = mockData[k]; } }); return result; };