@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.
@@ -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} = require('./observable');
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'));
@@ -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
- for (const target of targets)
228
+ if (opts.overwrite || target[ename] === undefined)
229
229
  {
230
- if (opts.overwrite || target[ename] === undefined)
231
- {
232
- def(target, ename, {value});
233
- tps[ename] = iname;
234
- tpm.p[ename] = this;
235
- }
236
- else
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
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lumjs/core",
3
- "version": "1.35.0",
3
+ "version": "1.35.1",
4
4
  "main": "lib/index.js",
5
5
  "exports":
6
6
  {