|
|
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.dataFix = void 0;
- const isObject_1 = require("./isObject");
- const TRUE = ['true', 'TRUE', '1', 1];
- const FALSE = ['false', 'FALSE', '0', 0];
- function dataFix(o, conf, finalKill) {
- if (!isObject_1.isObject(o))
- return;
- const { remove = [], rename = {}, camel = [], bool = [], lowerFirst = false } = conf;
- // 删除不需要的数据
- remove.forEach(v => delete o[v]);
- // 重命名
- Object.entries(rename).forEach(v => {
- if (!o[v[0]])
- return;
- if (o[v[1]])
- return;
- o[v[1]] = o[v[0]];
- delete o[v[0]];
- });
- // 驼峰化
- camel.forEach(v => {
- if (!o[v])
- return;
- const afterKey = v.replace(/^(.)/, $0 => $0.toLowerCase()).replace(/-(\w)/g, (_, $1) => $1.toUpperCase());
- if (o[afterKey])
- return;
- o[afterKey] = o[v];
- // todo 暂时兼容以前数据,不做删除
- // delete o[v];
- });
- // 转换值为布尔值
- bool.forEach(v => {
- o[v] = fixBool(o[v]);
- });
- // finalKill
- if (typeof finalKill === 'function') {
- finalKill(o);
- }
- // 首字母转小写
- fixLowerFirst(o, lowerFirst);
- return dataFix;
- }
- exports.dataFix = dataFix;
- function fixBool(value) {
- if (!value)
- return false;
- if (TRUE.includes(value))
- return true;
- return FALSE.includes(value) ? false : value;
- }
- function fixLowerFirst(o, lowerFirst) {
- if (lowerFirst) {
- Object.keys(o).forEach(key => {
- const lowerK = key.replace(/^\w/, match => match.toLowerCase());
- if (typeof o[lowerK] === 'undefined') {
- o[lowerK] = o[key];
- delete o[key];
- }
- });
- }
- }
|