UNPKG

flo-utils

Version:
65 lines (56 loc) 1.7 kB
"use strict"; 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; }