mirror of
https://github.com/amark/gun.git
synced 2025-03-30 15:08:33 +00:00
35 lines
1.1 KiB
JavaScript
35 lines
1.1 KiB
JavaScript
var Gun = Gun || require('../gun');
|
|
|
|
/*
|
|
Gun.chain.set = function(obj, cb, opt){
|
|
var set = this;
|
|
opt = opt || {};
|
|
cb = cb || function(){};
|
|
set = set.put({}); // insert assumes a graph node. So either create it or merge with the existing one.
|
|
var error, item = set.chain().put(obj, function(err){ // create the new item in its own context.
|
|
error = err; // if this happens, it should get called before the .val
|
|
}).val(function(val){
|
|
if(error){ return cb.call(set, error) } // which in case it is, allows us to fail fast.
|
|
var add = {}, soul = Gun.is.soul.on(val);
|
|
if(!soul){ return cb.call(set, {err: Gun.log("No soul!")}) }
|
|
add[soul] = val; // other wise, let's then
|
|
set.put(add, cb); // merge with the graph node.
|
|
});
|
|
return item;
|
|
};*/
|
|
|
|
Gun.chain.set = function(val, cb, opt){
|
|
var gun = this, ctx = {}, drift = Gun.time.now();
|
|
cb = cb || function(){};
|
|
opt = opt || {};
|
|
|
|
if(!gun.back){ gun = gun.put({}) }
|
|
gun = gun.not(function(next, key){
|
|
return key? this.put({}).key(key) : this.put({});
|
|
});
|
|
if(!val && !Gun.is.value(val)){ return gun }
|
|
|
|
var obj = {};
|
|
obj['I' + drift + 'R' + Gun.text.random(5)] = val;
|
|
return gun.put(obj, cb);
|
|
} |