gun-flint
Version:
Micro-framework for building Gun adapters
58 lines (45 loc) • 1.24 kB
JavaScript
;
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;
}
};