UNPKG

v1sdk

Version:
55 lines (48 loc) 1.87 kB
'use strict'; 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; };