UNPKG

table-resolver

Version:
65 lines (46 loc) 1.48 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _isFunction2 = require('lodash/isFunction'); var _isFunction3 = _interopRequireDefault(_isFunction2); var _has2 = require('lodash/has'); var _has3 = _interopRequireDefault(_has2); var _get2 = require('lodash/get'); var _get3 = _interopRequireDefault(_get2); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var reIsPlainProp = /^\w*$/; function nested(_ref) { var column = _ref.column; /* eslint no-param-reassign: "off" */ var property = column.property; if (!property) { return function (rowData) { return rowData; }; } // if users provide a custom getter instead of a // path for _.get, use that getter ... if ((0, _isFunction3.default)(property)) { // TODO: Function as key can't be right? return function (rowData) { rowData[property] = property(rowData); return rowData; }; } // Make things simple if the property is simple. No copy needed. if (typeof property === 'string' && reIsPlainProp.test(property)) { return function (rowData) { return rowData; }; } return function (rowData) { // ... otherwise, make sure property exists, then _.get it if (!(0, _has3.default)(rowData, property)) { return rowData; } rowData[property] = (0, _get3.default)(rowData, property); return rowData; }; } exports.default = nested;