mirror of
https://github.com/amark/gun.git
synced 2025-06-06 14:16:44 +00:00
fix 1 of @mmalmi 's found bug.
This commit is contained in:
parent
0cad0fb724
commit
9781877db8
14
gun.js
14
gun.js
@ -967,7 +967,6 @@
|
|||||||
at.on('in', at);
|
at.on('in', at);
|
||||||
return;
|
return;
|
||||||
}*/
|
}*/
|
||||||
//console.log("out!", at.get, get);
|
|
||||||
if(get['#'] || at.soul){
|
if(get['#'] || at.soul){
|
||||||
get['#'] = get['#'] || at.soul;
|
get['#'] = get['#'] || at.soul;
|
||||||
msg['#'] || (msg['#'] = text_rand(9));
|
msg['#'] || (msg['#'] = text_rand(9));
|
||||||
@ -1107,13 +1106,12 @@
|
|||||||
not(at, msg);
|
not(at, msg);
|
||||||
}
|
}
|
||||||
tmp = from.id? ((at.map || (at.map = {}))[from.id] = at.map[from.id] || {at: from}) : {};
|
tmp = from.id? ((at.map || (at.map = {}))[from.id] = at.map[from.id] || {at: from}) : {};
|
||||||
//console.log("REL?", at.id, at.get, rel === tmp.link, tmp.pass || at.pass);
|
|
||||||
if(rel === tmp.link){
|
if(rel === tmp.link){
|
||||||
if(!(tmp.pass || at.pass)){
|
if(!(tmp.pass || at.pass)){
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(at.pass){
|
if(at.pass){
|
||||||
Gun.obj.map(at.map, function(tmp){ tmp.pass = true })
|
Gun.obj.map(at.map, function(tmp){ tmp.pass = true })
|
||||||
obj_del(at, 'pass');
|
obj_del(at, 'pass');
|
||||||
}
|
}
|
||||||
@ -1730,10 +1728,8 @@
|
|||||||
gun.map().on(function(data, key, at, ev){
|
gun.map().on(function(data, key, at, ev){
|
||||||
var next = (cb||noop).call(this, data, key, at, ev);
|
var next = (cb||noop).call(this, data, key, at, ev);
|
||||||
if(u === next){ return }
|
if(u === next){ return }
|
||||||
if(data === next || Gun.is(next)){
|
if(data === next){ return chain._.on('in', at) }
|
||||||
chain._.on('in', next._);
|
if(Gun.is(next)){ return chain._.on('in', next._) }
|
||||||
return;
|
|
||||||
}
|
|
||||||
chain._.on('in', {get: key, put: next});
|
chain._.on('in', {get: key, put: next});
|
||||||
});
|
});
|
||||||
return chain;
|
return chain;
|
||||||
@ -2024,11 +2020,7 @@
|
|||||||
var wire = peer.wire;
|
var wire = peer.wire;
|
||||||
try{
|
try{
|
||||||
if(wire.send){
|
if(wire.send){
|
||||||
if(wire.readyState === wire.OPEN){
|
|
||||||
wire.send(raw);
|
wire.send(raw);
|
||||||
} else {
|
|
||||||
(peer.queue = peer.queue || []).push(raw);
|
|
||||||
}
|
|
||||||
} else
|
} else
|
||||||
if(peer.say){
|
if(peer.say){
|
||||||
peer.say(raw);
|
peer.say(raw);
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "gun",
|
"name": "gun",
|
||||||
"version": "0.9.9998",
|
"version": "0.9.9999",
|
||||||
"description": "A realtime, decentralized, offline-first, graph data synchronization engine.",
|
"description": "A realtime, decentralized, offline-first, graph data synchronization engine.",
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"browser": "gun.min.js",
|
"browser": "gun.min.js",
|
||||||
|
5
sea.js
5
sea.js
@ -1067,9 +1067,8 @@
|
|||||||
var Gun = SEA.Gun;
|
var Gun = SEA.Gun;
|
||||||
var then = USE('./then');
|
var then = USE('./then');
|
||||||
|
|
||||||
function User(){
|
function User(root){
|
||||||
this._ = {$: this}
|
this._ = {$: this};
|
||||||
Gun.call()
|
|
||||||
}
|
}
|
||||||
User.prototype = (function(){ function F(){}; F.prototype = Gun.chain; return new F() }()) // Object.create polyfill
|
User.prototype = (function(){ function F(){}; F.prototype = Gun.chain; return new F() }()) // Object.create polyfill
|
||||||
User.prototype.constructor = User;
|
User.prototype.constructor = User;
|
||||||
|
@ -3366,6 +3366,30 @@ describe('Gun', function(){
|
|||||||
list.set({name: 'dave', age: 25});
|
list.set({name: 'dave', age: 25});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('once map function once', function(done){
|
||||||
|
var gun = Gun(), s = 'o/mf/o', u;
|
||||||
|
var app = gun.get(s);
|
||||||
|
var list = app.get('list');
|
||||||
|
|
||||||
|
var check = {};
|
||||||
|
gun.get('user').get('alice').put({name:'Alice', email:'alice@example.com'})
|
||||||
|
gun.get('user').get('bob').put({name:'Bob', email:'bob@example.com'})
|
||||||
|
gun.get('user').get('carl').put({name:'Carl', email:'carl@example.com'})
|
||||||
|
|
||||||
|
gun.get('user').once().map(v => {
|
||||||
|
//console.log('this gets called', v);
|
||||||
|
return v
|
||||||
|
}).once((v, k) => {
|
||||||
|
//console.log('this is never called', k, v);
|
||||||
|
check[k] = (check[k] || 0) + 1;
|
||||||
|
if(1 === check.alice && 1 === check.bob && 1 === check.carl){
|
||||||
|
if(done.c){return}done.c=1;
|
||||||
|
done();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
it('val and then map', function(done){
|
it('val and then map', function(done){
|
||||||
var gun = Gun(), s = 'val/then/map', u;
|
var gun = Gun(), s = 'val/then/map', u;
|
||||||
var list = gun.get(s);
|
var list = gun.get(s);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user