mirror of
https://github.com/amark/gun.git
synced 2025-03-30 15:08:33 +00:00
Merge pull request #294 from PsychoLlama/0.5
Shallow copy constructor options
This commit is contained in:
commit
ad345582aa
54
gun.js
54
gun.js
@ -903,32 +903,38 @@
|
||||
|
||||
;(function(){
|
||||
|
||||
Gun.chain.opt = function(opt){
|
||||
opt = opt || {};
|
||||
var gun = this, at = gun._, tmp, u;
|
||||
at.root = at.root || gun;
|
||||
Gun.chain.opt = function(opt){
|
||||
opt = opt || {};
|
||||
var peers = obj_is(opt) ? opt.peers : opt;
|
||||
if (text_is(peers)) {
|
||||
peers = [peers];
|
||||
}
|
||||
if (list_is(peers)) {
|
||||
peers = obj_map(peers, function (url, field, m) {
|
||||
m(url, {});
|
||||
});
|
||||
}
|
||||
if (!obj_is(opt)) {
|
||||
opt = {};
|
||||
}
|
||||
opt.peers = peers;
|
||||
var gun = this, at = gun._;
|
||||
at.root = at.root || gun;
|
||||
at.graph = at.graph || {};
|
||||
at.dedup = new Dedup();
|
||||
at.opt = at.opt || {};
|
||||
if(text_is(opt)){ opt = {peers: opt} }
|
||||
else if(list_is(opt)){ opt = {peers: opt} }
|
||||
if(text_is(opt.peers)){ opt.peers = [opt.peers] }
|
||||
if(list_is(opt.peers)){ opt.peers = obj_map(opt.peers, function(n,f,m){m(n,{})}) }
|
||||
obj_map(opt, function map(v,f){
|
||||
if(obj_is(v)){
|
||||
obj_map(v, map, this[f] || (this[f] = {})); // TODO: Bug? Be careful of falsey values getting overwritten?
|
||||
return;
|
||||
}
|
||||
this[f] = v;
|
||||
}, at.opt);
|
||||
Gun.on('opt', at);
|
||||
if(!at.once){
|
||||
gun.on('in', input, at);
|
||||
gun.on('out', output, at);
|
||||
}
|
||||
at.once = true;
|
||||
return gun;
|
||||
}
|
||||
at.opt = at.opt || {};
|
||||
|
||||
at.opt.peers = Gun.obj.to(at.opt.peers || {}, peers);
|
||||
Gun.obj.to(opt, at.opt);
|
||||
|
||||
Gun.on('opt', at);
|
||||
if(!at.once){
|
||||
gun.on('in', input, at);
|
||||
gun.on('out', output, at);
|
||||
}
|
||||
at.once = true;
|
||||
return gun;
|
||||
}
|
||||
function output(at){
|
||||
var cat = this, gun = cat.gun, tmp;
|
||||
// TODO: BUG! Outgoing `get` to read from in memory!!!
|
||||
|
Loading…
x
Reference in New Issue
Block a user