@lumjs/core 1.35.0 → 1.35.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/events/index.js +38 -1
- package/lib/events/registry.js +9 -12
- package/package.json +1 -1
package/lib/events/index.js
CHANGED
|
@@ -10,6 +10,9 @@
|
|
|
10
10
|
*
|
|
11
11
|
* @module @lumjs/core/events
|
|
12
12
|
*/
|
|
13
|
+
|
|
14
|
+
const lazy = require('../types/lazy');
|
|
15
|
+
|
|
13
16
|
exports = module.exports =
|
|
14
17
|
{
|
|
15
18
|
Registry: require('./registry'),
|
|
@@ -50,7 +53,41 @@ exports = module.exports =
|
|
|
50
53
|
*/
|
|
51
54
|
observable(target, opts)
|
|
52
55
|
{
|
|
53
|
-
const {makeObservable} =
|
|
56
|
+
const {makeObservable} = exports.Observable;
|
|
54
57
|
return makeObservable(target, opts);
|
|
55
58
|
},
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* See if an object has a known trigger method.
|
|
62
|
+
*
|
|
63
|
+
* Currently will look for one of:
|
|
64
|
+
*
|
|
65
|
+
* - `emit`
|
|
66
|
+
* - `trigger`
|
|
67
|
+
*
|
|
68
|
+
* @param {object} obj - Object we want to find a trigger method on
|
|
69
|
+
*
|
|
70
|
+
* @returns {?string} The name of the method found,
|
|
71
|
+
* or null if none found.
|
|
72
|
+
*/
|
|
73
|
+
hasTrigger(obj)
|
|
74
|
+
{
|
|
75
|
+
for (const trigger of exports.KNOWN_TRIGGERS)
|
|
76
|
+
{
|
|
77
|
+
if (typeof obj[trigger] === F)
|
|
78
|
+
{
|
|
79
|
+
return trigger;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
return null;
|
|
84
|
+
},
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* The list of known trigger method names for `hasTrigger()`
|
|
88
|
+
*/
|
|
89
|
+
KNOWN_TRIGGERS: ['emit','trigger'],
|
|
90
|
+
|
|
56
91
|
}
|
|
92
|
+
|
|
93
|
+
lazy(exports, 'Observable', () => require('./observable'));
|
package/lib/events/registry.js
CHANGED
|
@@ -225,19 +225,16 @@ class LumEventRegistry
|
|
|
225
225
|
const value = iname === 'registry'
|
|
226
226
|
? this // The registry instance itself
|
|
227
227
|
: (...args) => this[iname](...args) // A proxy method
|
|
228
|
-
|
|
228
|
+
if (opts.overwrite || target[ename] === undefined)
|
|
229
229
|
{
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
console.error("Won't overwrite existing property",
|
|
239
|
-
{target,iname,ename,registry: this});
|
|
240
|
-
}
|
|
230
|
+
def(target, ename, {value});
|
|
231
|
+
tps[ename] = iname;
|
|
232
|
+
tpm.p[ename] = this;
|
|
233
|
+
}
|
|
234
|
+
else
|
|
235
|
+
{
|
|
236
|
+
console.error("Won't overwrite existing property",
|
|
237
|
+
{target,iname,ename,registry: this});
|
|
241
238
|
}
|
|
242
239
|
}
|
|
243
240
|
}
|