UNPKG

@aplus-frontend/antdv

Version:

Vue basic component library maintained based on ant-design-vue

38 lines (37 loc) 1.37 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = set; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _get = _interopRequireDefault(require("./get")); function internalSet(entity, paths, value, removeIfUndefined) { if (!paths.length) { return value; } const [path, ...restPath] = paths; let clone; if (!entity && typeof path === 'number') { clone = []; } else if (Array.isArray(entity)) { clone = [...entity]; } else { clone = (0, _extends2.default)({}, entity); } // Delete prop if `removeIfUndefined` and value is undefined if (removeIfUndefined && value === undefined && restPath.length === 1) { delete clone[path][restPath[0]]; } else { clone[path] = internalSet(clone[path], restPath, value, removeIfUndefined); } return clone; } function set(entity, paths, value) { let removeIfUndefined = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; // Do nothing if `removeIfUndefined` and parent object not exist if (paths.length && removeIfUndefined && value === undefined && !(0, _get.default)(entity, paths.slice(0, -1))) { return entity; } return internalSet(entity, paths, value, removeIfUndefined); }