util-helpers
Version:
45 lines (42 loc) • 1.52 kB
JavaScript
import { __assign } from 'tslib';
import { isArray, isObject } from 'ut2';
import { objectKeys } from './utils/native.js';
function transformFieldNames(data, fieldNames, childrenField, nodeAssign) {
if (nodeAssign === void 0) { nodeAssign = 'spread'; }
if (!isArray(data)) {
return data;
}
if (data.length <= 0) {
return [];
}
function recusion(arr) {
return arr.map(function (item) {
if (!isObject(item)) {
return item;
}
var newItem = nodeAssign === 'spread' ? __assign({}, item) : item;
var delKeys = [];
if (childrenField && isArray(newItem[childrenField]) && newItem[childrenField].length > 0) {
newItem[childrenField] = recusion(newItem[childrenField].slice());
}
var newKeys = objectKeys(fieldNames);
newKeys.forEach(function (newKey) {
var oldKey = fieldNames[newKey];
if (oldKey in newItem) {
newItem[newKey] = newItem[oldKey];
if (newKeys.indexOf(oldKey) === -1) {
delKeys.push(oldKey);
}
}
});
if (delKeys.length > 0) {
delKeys.forEach(function (delKey) {
delete newItem[delKey];
});
}
return newItem;
});
}
return recusion(data.slice());
}
export { transformFieldNames as default };