apim-tools
Version:
APIM Tools
74 lines (63 loc) • 1.59 kB
JavaScript
/**
* @file mock 处理器的助手方法
* @author sparklewhy@gmail.com
*/
;
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;
};