Add singleton feature to Actor observation
This commit is contained in:
parent
c5f7e9db2a
commit
d080494664
|
@ -86,6 +86,7 @@ var observerDefaults = {
|
||||||
when: function () { return true; },
|
when: function () { return true; },
|
||||||
presence: null,
|
presence: null,
|
||||||
name: null,
|
name: null,
|
||||||
|
singleton: null,
|
||||||
set: null,
|
set: null,
|
||||||
added: null,
|
added: null,
|
||||||
removed: null
|
removed: null
|
||||||
|
@ -124,6 +125,7 @@ function finalizeActor(behavior, chunks) {
|
||||||
if (chunk.kind === 'observer') {
|
if (chunk.kind === 'observer') {
|
||||||
if (chunk.options.presence) { this[chunk.options.presence] = false; }
|
if (chunk.options.presence) { this[chunk.options.presence] = false; }
|
||||||
if (chunk.options.name) { this[chunk.options.name] = []; }
|
if (chunk.options.name) { this[chunk.options.name] = []; }
|
||||||
|
if (chunk.options.singleton) { this[chunk.options.singleton] = undefined; }
|
||||||
if (chunk.options.added) { this[chunk.options.added] = []; }
|
if (chunk.options.added) { this[chunk.options.added] = []; }
|
||||||
if (chunk.options.removed) { this[chunk.options.removed] = []; }
|
if (chunk.options.removed) { this[chunk.options.removed] = []; }
|
||||||
}
|
}
|
||||||
|
@ -220,6 +222,9 @@ function finalizeActor(behavior, chunks) {
|
||||||
if (chunk.options.name) {
|
if (chunk.options.name) {
|
||||||
this[chunk.options.name] = objs;
|
this[chunk.options.name] = objs;
|
||||||
}
|
}
|
||||||
|
if (chunk.options.singleton) {
|
||||||
|
this[chunk.options.singleton] = objs.length === 1 ? objs[0] : undefined;
|
||||||
|
}
|
||||||
|
|
||||||
if (chunk.options.added || chunk.options.removed) {
|
if (chunk.options.added || chunk.options.removed) {
|
||||||
var objSet = Route.arrayToSet(objs);
|
var objSet = Route.arrayToSet(objs);
|
||||||
|
|
Loading…
Reference in New Issue