UNPKG

706 BJavaScriptView Raw
1
2var Gun = require('./root');
3Gun.chain.back = function(n, opt){ var tmp;
4 if(-1 === n || Infinity === n){
5 return this._.root;
6 } else
7 if(1 === n){
8 return this._.back || this;
9 }
10 var gun = this, at = gun._;
11 if(typeof n === 'string'){
12 n = n.split('.');
13 }
14 if(n instanceof Array){
15 var i = 0, l = n.length, tmp = at;
16 for(i; i < l; i++){
17 tmp = (tmp||empty)[n[i]];
18 }
19 if(u !== tmp){
20 return opt? gun : tmp;
21 } else
22 if((tmp = at.back)){
23 return tmp.back(n, opt);
24 }
25 return;
26 }
27 if(n instanceof Function){
28 var yes, tmp = {back: gun};
29 while((tmp = tmp.back)
30 && (tmp = tmp._)
31 && !(yes = n(tmp, opt))){}
32 return yes;
33 }
34}
35var empty = {}, u;
36
\No newline at end of file