flo-utils
Version:
65 lines (56 loc) • 1.7 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = saveHook;
var _isPlainObject = _interopRequireDefault(require("lodash/isPlainObject"));
var _isArray = _interopRequireDefault(require("lodash/isArray"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/**
* 数据保存,属性处理
*/
/**
* 数据属性保留
*
* 1、属于includes
* 2、不属于 excludes
* 3、不在两者中的 + excludes 不为true = 其他属性保留
*
* @export
* @param {any[] | any} [ds=[]]
* @param {string[]} [includes=[]]
* @param {string[]} [excludes=[]]
* @returns
*/
function saveHook() {
var ds = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
var includes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
var excludes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
if (!ds) return [];
var isO = (0, _isPlainObject.default)(ds);
var isA = (0, _isArray.default)(ds);
var isCA = (0, _isArray.default)(includes);
var isEA = (0, _isArray.default)(excludes);
if (!isO && !isA) return ds;
if (!isCA && !isEA) return ds;
if (isO) {
var o = {};
var ks = Object.keys(ds);
ks.forEach(function (k) {
if ((0, _isArray.default)(includes) && includes.includes(k)) {
o[k] = ds[k];
} else if ((0, _isArray.default)(excludes) && !excludes.includes(k)) {
o[k] = ds[k];
} else if (!excludes) {
o[k] = ds[k];
}
});
return o;
}
if (isA) {
return ds.map(function (d) {
return saveHook(d, includes, excludes);
});
}
return ds;
}
;