form-render
Version:
通过 JSON Schema 生成标准 Form,常用于自定义搭建配置界面生成
53 lines (52 loc) • 1.55 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _lodashEs = require("lodash-es");
var _utils = require("../utils");
var _default = exports.default = function _default(values, notFilter) {
var _recursiveArray = function recursiveArray(list) {
var result = list.map(function (item) {
if ((0, _utils.isObject)(item)) {
return _recursiveObj(item, false);
}
if ((0, _utils.isArray)(item)) {
return _recursiveArray(item);
}
return item;
});
if (Object.keys(result).length === 0) {
return undefined;
}
return result;
};
var _recursiveObj = function recursiveObj(_obj) {
var filter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
if (_obj._isAMomentObject) {
return _obj;
}
var obj = (0, _lodashEs.omitBy)(_obj, _lodashEs.isUndefined);
Object.keys(obj).forEach(function (key) {
var item = obj[key];
if ((0, _utils.isObject)(item)) {
obj[key] = _recursiveObj(item);
}
if ((0, _utils.isArray)(item)) {
var data = _recursiveArray(item);
obj[key] = data;
if (!notFilter && data) {
obj[key] = data.filter(function (item) {
return item !== undefined;
});
}
}
});
obj = (0, _lodashEs.omitBy)(obj, _lodashEs.isUndefined);
if (Object.keys(obj).length === 0 && filter) {
return undefined;
}
return obj;
};
return _recursiveObj(values) || {};
};
;