util-helpers
Version:
47 lines (43 loc) • 1.53 kB
JavaScript
;
var tslib = require('tslib');
var ut2 = require('ut2');
var native = require('./utils/native.js');
function transformFieldNames(data, fieldNames, childrenField, nodeAssign) {
if (nodeAssign === void 0) { nodeAssign = 'spread'; }
if (!ut2.isArray(data)) {
return data;
}
if (data.length <= 0) {
return [];
}
function recusion(arr) {
return arr.map(function (item) {
if (!ut2.isObject(item)) {
return item;
}
var newItem = nodeAssign === 'spread' ? tslib.__assign({}, item) : item;
var delKeys = [];
if (childrenField && ut2.isArray(newItem[childrenField]) && newItem[childrenField].length > 0) {
newItem[childrenField] = recusion(newItem[childrenField].slice());
}
var newKeys = native.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());
}
module.exports = transformFieldNames;