UNPKG

gun-flint

Version:

Micro-framework for building Gun adapters

58 lines (45 loc) 1.24 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _keys = require('babel-runtime/core-js/object/keys'); var _keys2 = _interopRequireDefault(_keys); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function isNil(val) { return val === null || val === undefined; } exports.default = { noop: function noop() {}, isNil: isNil, gunify: function gunify(key) { var vals = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : []; var node = { '_': { '#': key, '>': {} } }; function applyResult(val) { // metadata node._['>'][val.field] = val.state; // relation if ((0, _keys2.default)(val).indexOf('rel') !== -1) { node[val.field] = { '#': val.rel }; } else { // value node[val.field] = (0, _keys2.default)(val).indexOf('val') ? val.val : null; } } // Vals is an array. Add each to the node if (vals instanceof Array && vals.length) { vals.forEach(applyResult); } else { // Vals is an object. Just write that one. applyResult(vals); } // finish return node; } };