si-funciona
Version:
Funciones de utilidad para uso general. [General usage utility functions.]
43 lines (41 loc) • 2.49 kB
JavaScript
Object.defineProperty(exports, '__esModule', {
value: true
})
exports.default = void 0
require('core-js/modules/esnext.async-iterator.find.js')
require('core-js/modules/esnext.async-iterator.reduce.js')
require('core-js/modules/esnext.iterator.constructor.js')
require('core-js/modules/esnext.iterator.find.js')
require('core-js/modules/esnext.iterator.reduce.js')
require('core-js/stable')
var _cloneDescriptorDetail = _interopRequireDefault(require('./cloneDescriptorDetail'))
var _uniqueArray = _interopRequireDefault(require('../arrays/uniqueArray'))
function _interopRequireDefault (e) { return e && e.__esModule ? e : { default: e } }
/**
* Assign properties from other details onto an existing detail.
* @memberOf module:objectDescriptors
* @param {module:objectDescriptors~descriptorDetail} originalDetail
* @param {...module:objectDescriptors~descriptorDetail} details
* @returns {module:objectDescriptors~descriptorDetail}
*/
const assignDescriptorDetail = function (originalDetail) {
for (var _len = arguments.length, details = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
details[_key - 1] = arguments[_key]
}
return details.reduce((existingDetail, newDetail) => {
existingDetail.type = (0, _uniqueArray.default)([...existingDetail.type, ...newDetail.type])
existingDetail.value = (0, _uniqueArray.default)([...existingDetail.value, ...newDetail.value])
existingDetail.nullable = existingDetail.nullable || newDetail.nullable
existingDetail.optional = existingDetail.optional || newDetail.optional
existingDetail.circular = existingDetail.circular || newDetail.circular
existingDetail.isReference = existingDetail.isReference || newDetail.isReference
existingDetail.isInstance = existingDetail.isInstance || newDetail.isInstance
existingDetail.arrayReference = [existingDetail.arrayReference, newDetail.arrayReference].find(ref => typeof ref === 'number')
existingDetail.objectReference = [existingDetail.objectReference, newDetail.objectReference].find(ref => typeof ref === 'number')
existingDetail.arrayReference = typeof existingDetail.arrayReference === 'undefined' ? null : existingDetail.arrayReference
existingDetail.objectReference = typeof existingDetail.objectReference === 'undefined' ? null : existingDetail.objectReference
return existingDetail
}, (0, _cloneDescriptorDetail.default)(originalDetail))
}
var _default = exports.default = assignDescriptorDetail