v1sdk
Version:
VersionOne API Client for JavaScript
55 lines (48 loc) • 1.87 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
exports.default = function (assetData) {
return {
Attributes: reduceAssetData(assetData)
};
};
var reduceAssetData = function reduceAssetData(obj) {
return Object.keys(obj).reduce(function (output, key) {
var attributeData = obj[key];
if (Array.isArray(attributeData)) {
return _extends({}, output, _defineProperty({}, key, {
name: key,
value: attributeData.map(reduceRelationalAttributes)
}));
}
if (isFunction(attributeData)) {
return _extends({}, output, _defineProperty({}, key, {
value: obj[key](),
act: 'set'
}));
}
return _extends({}, output, _defineProperty({}, key, {
value: obj[key],
act: 'set'
}));
}, {});
};
var reduceRelationalAttributes = function reduceRelationalAttributes(obj) {
if (typeof obj === 'string') {
return {
idref: obj,
act: 'add'
};
}
return Object.keys(obj).reduce(function (output) {
output.idref = obj.idref;
output.act = obj.act ? obj.act : 'add';
return output;
}, {});
};
var isFunction = function isFunction(obj) {
return obj && obj.constructor && obj.call && obj.apply;
};