@lowentry/utils 1.21.1 → 1.22.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.
@@ -0,0 +1,46 @@
1
+ /**
2
+ * A simple event emitter class that allows you to register listeners for events, emit events, and remove listeners.
3
+ */
4
+ export class EventEmitter {
5
+ /**
6
+ * Registers a listener for a specific event.
7
+ *
8
+ * @param {string} event - The name of the event to listen for.
9
+ * @param {Function} listener - The function to call when the event is emitted.
10
+ * @returns {{remove:(()=>void)}}
11
+ */
12
+ on(event: string, listener: Function): {
13
+ remove: (() => void);
14
+ };
15
+ /**
16
+ * Registers a listener for a specific event, this listener will be called only once.
17
+ *
18
+ * @param {string} event - The name of the event to listen for.
19
+ * @param {Function} listener - The function to call when the event is emitted.
20
+ * @returns {{remove:()=>void}}
21
+ */
22
+ once(event: string, listener: Function): {
23
+ remove: () => void;
24
+ };
25
+ /**
26
+ * Removes a listener for a specific event.
27
+ *
28
+ * @param {string} event - The name of the event to stop listening for.
29
+ * @param {Function} listener - The function to remove from the event listeners.
30
+ */
31
+ off(event: string, listener: Function): void;
32
+ /**
33
+ * Emits an event, calling all registered listeners with the provided arguments.
34
+ *
35
+ * @param {string} event - The name of the event to emit.
36
+ * @param {...*} args - The arguments to pass to the listeners.
37
+ */
38
+ emit(event: string, ...args: any[]): void;
39
+ /**
40
+ * Clears all listeners for a specific event or all events if no event is specified.
41
+ *
42
+ * @param {string} [event] - The name of the event to clear listeners for. If not provided, all events will be cleared.
43
+ */
44
+ clear(event?: string): void;
45
+ #private;
46
+ }
package/build/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export { LeUtils } from "./LeUtils.js";
2
+ export { EventEmitter } from "./classes/EventEmitter.js";
2
3
  export { LinkedList } from "./classes/LinkedList.js";
3
4
  export { SerializableMap } from "./classes/SerializableMap.js";
4
5
  export { TreeSet } from "./classes/TreeSet.js";
package/index.d.ts CHANGED
@@ -1,5 +1,52 @@
1
1
  export declare function ARRAY(value: any): any[];
2
2
 
3
+ /**
4
+ * A simple event emitter class that allows you to register listeners for events, emit events, and remove listeners.
5
+ */
6
+ export declare class EventEmitter {
7
+ /**
8
+ * Registers a listener for a specific event.
9
+ *
10
+ * @param {string} event - The name of the event to listen for.
11
+ * @param {Function} listener - The function to call when the event is emitted.
12
+ * @returns {{remove:(()=>void)}}
13
+ */
14
+ on(event: string, listener: Function): {
15
+ remove: (() => void);
16
+ };
17
+ /**
18
+ * Registers a listener for a specific event, this listener will be called only once.
19
+ *
20
+ * @param {string} event - The name of the event to listen for.
21
+ * @param {Function} listener - The function to call when the event is emitted.
22
+ * @returns {{remove:()=>void}}
23
+ */
24
+ once(event: string, listener: Function): {
25
+ remove: () => void;
26
+ };
27
+ /**
28
+ * Removes a listener for a specific event.
29
+ *
30
+ * @param {string} event - The name of the event to stop listening for.
31
+ * @param {Function} listener - The function to remove from the event listeners.
32
+ */
33
+ off(event: string, listener: Function): void;
34
+ /**
35
+ * Emits an event, calling all registered listeners with the provided arguments.
36
+ *
37
+ * @param {string} event - The name of the event to emit.
38
+ * @param {...*} args - The arguments to pass to the listeners.
39
+ */
40
+ emit(event: string, ...args: any[]): void;
41
+ /**
42
+ * Clears all listeners for a specific event or all events if no event is specified.
43
+ *
44
+ * @param {string} [event] - The name of the event to clear listeners for. If not provided, all events will be cleared.
45
+ */
46
+ clear(event?: string): void;
47
+ #private;
48
+ }
49
+
3
50
  export declare function FLOAT(value: any): number;
4
51
 
5
52
  export declare function FLOAT_ANY(...values: any): number;
package/index.js CHANGED
@@ -8,8 +8,8 @@ import _wrapAsyncGenerator from '@babel/runtime/helpers/wrapAsyncGenerator';
8
8
  import _regeneratorRuntime from '@babel/runtime/regenerator';
9
9
  import FastDeepEqual from 'fast-deep-equal';
10
10
  import CloneDeep from 'clone-deep';
11
- import _createClass from '@babel/runtime/helpers/createClass';
12
11
  import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
12
+ import _createClass from '@babel/runtime/helpers/createClass';
13
13
  import _possibleConstructorReturn from '@babel/runtime/helpers/possibleConstructorReturn';
14
14
  import _getPrototypeOf from '@babel/runtime/helpers/getPrototypeOf';
15
15
  import _inherits from '@babel/runtime/helpers/inherits';
@@ -214,9 +214,9 @@ var FLOAT_LAX_ANY = function FLOAT_LAX_ANY() {
214
214
 
215
215
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
216
216
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
217
- function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
218
- function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
219
- function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
217
+ function _createForOfIteratorHelper$1(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$1(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
218
+ function _unsupportedIterableToArray$1(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$1(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$1(r, a) : void 0; } }
219
+ function _arrayLikeToArray$1(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
220
220
 
221
221
  /**
222
222
  * @param {LeUtils_TransactionalValue} transactionalValue
@@ -704,7 +704,7 @@ var LeUtils = {
704
704
  }
705
705
  if (typeof (elements === null || elements === void 0 ? void 0 : elements[Symbol.iterator]) === 'function') {
706
706
  var i = 0;
707
- var _iterator = _createForOfIteratorHelper(elements),
707
+ var _iterator = _createForOfIteratorHelper$1(elements),
708
708
  _step;
709
709
  try {
710
710
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -820,7 +820,7 @@ var LeUtils = {
820
820
  _context.next = 17;
821
821
  break;
822
822
  }
823
- _iterator2 = _createForOfIteratorHelper(elements);
823
+ _iterator2 = _createForOfIteratorHelper$1(elements);
824
824
  _context.prev = 10;
825
825
  _iterator2.s();
826
826
  case 11:
@@ -852,7 +852,7 @@ var LeUtils = {
852
852
  _context.next = 25;
853
853
  break;
854
854
  }
855
- _iterator3 = _createForOfIteratorHelper(elements);
855
+ _iterator3 = _createForOfIteratorHelper$1(elements);
856
856
  _context.prev = 18;
857
857
  _iterator3.s();
858
858
  case 19:
@@ -904,7 +904,7 @@ var LeUtils = {
904
904
  break;
905
905
  }
906
906
  _i4 = 0;
907
- _iterator4 = _createForOfIteratorHelper(elements);
907
+ _iterator4 = _createForOfIteratorHelper$1(elements);
908
908
  _context.prev = 30;
909
909
  _iterator4.s();
910
910
  case 31:
@@ -999,7 +999,7 @@ var LeUtils = {
999
999
  */
1000
1000
  each: function each(elements, callback) {
1001
1001
  var optionalSkipHasOwnPropertyCheck = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
1002
- var _iterator5 = _createForOfIteratorHelper(LeUtils.eachIterator(elements, optionalSkipHasOwnPropertyCheck)),
1002
+ var _iterator5 = _createForOfIteratorHelper$1(LeUtils.eachIterator(elements, optionalSkipHasOwnPropertyCheck)),
1003
1003
  _step5;
1004
1004
  try {
1005
1005
  for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
@@ -1149,7 +1149,7 @@ var LeUtils = {
1149
1149
  case 1:
1150
1150
  return _context5.abrupt("return", _context5.sent);
1151
1151
  case 2:
1152
- _iterator6 = _createForOfIteratorHelper(LeUtils.eachIterator(elements, optionalSkipHasOwnPropertyCheck));
1152
+ _iterator6 = _createForOfIteratorHelper$1(LeUtils.eachIterator(elements, optionalSkipHasOwnPropertyCheck));
1153
1153
  _context5.prev = 3;
1154
1154
  _iterator6.s();
1155
1155
  case 4:
@@ -1333,7 +1333,7 @@ var LeUtils = {
1333
1333
  var optionalSkipHasOwnPropertyCheck = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
1334
1334
  var keys = LeUtils.sortKeys(elements, comparator, optionalSkipHasOwnPropertyCheck);
1335
1335
  var result = [];
1336
- var _iterator7 = _createForOfIteratorHelper(keys),
1336
+ var _iterator7 = _createForOfIteratorHelper$1(keys),
1337
1337
  _step7;
1338
1338
  try {
1339
1339
  for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
@@ -3425,6 +3425,144 @@ var LeUtils = {
3425
3425
  }()
3426
3426
  };
3427
3427
 
3428
+ function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
3429
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
3430
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
3431
+ function _classPrivateFieldInitSpec$2(e, t, a) { _checkPrivateRedeclaration$2(e, t), t.set(e, a); }
3432
+ function _checkPrivateRedeclaration$2(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
3433
+ function _classPrivateFieldGet$2(s, a) { return s.get(_assertClassBrand$2(s, a)); }
3434
+ function _classPrivateFieldSet$2(s, a, r) { return s.set(_assertClassBrand$2(s, a), r), r; }
3435
+ function _assertClassBrand$2(e, t, n) { if ("function" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError("Private element is not present on this object"); }
3436
+ var _events = /*#__PURE__*/new WeakMap();
3437
+ /**
3438
+ * A simple event emitter class that allows you to register listeners for events, emit events, and remove listeners.
3439
+ */
3440
+ var EventEmitter = /*#__PURE__*/function () {
3441
+ /**
3442
+ * Creates a new EventEmitter instance.
3443
+ */
3444
+ function EventEmitter() {
3445
+ _classCallCheck(this, EventEmitter);
3446
+ /** @type {Map<string, Set<Function>>} */
3447
+ _classPrivateFieldInitSpec$2(this, _events, void 0);
3448
+ _classPrivateFieldSet$2(_events, this, new Map());
3449
+ }
3450
+
3451
+ /**
3452
+ * Registers a listener for a specific event.
3453
+ *
3454
+ * @param {string} event - The name of the event to listen for.
3455
+ * @param {Function} listener - The function to call when the event is emitted.
3456
+ * @returns {{remove:(()=>void)}}
3457
+ */
3458
+ return _createClass(EventEmitter, [{
3459
+ key: "on",
3460
+ value: function on(event, listener) {
3461
+ var _classPrivateFieldGet2,
3462
+ _this = this;
3463
+ if (!_classPrivateFieldGet$2(_events, this).has(event)) {
3464
+ _classPrivateFieldGet$2(_events, this).set(event, new Set());
3465
+ }
3466
+ (_classPrivateFieldGet2 = _classPrivateFieldGet$2(_events, this).get(event)) === null || _classPrivateFieldGet2 === void 0 || _classPrivateFieldGet2.add(listener);
3467
+ return {
3468
+ remove: function remove() {
3469
+ return _this.off(event, listener);
3470
+ }
3471
+ };
3472
+ }
3473
+
3474
+ /**
3475
+ * Registers a listener for a specific event, this listener will be called only once.
3476
+ *
3477
+ * @param {string} event - The name of the event to listen for.
3478
+ * @param {Function} listener - The function to call when the event is emitted.
3479
+ * @returns {{remove:()=>void}}
3480
+ */
3481
+ }, {
3482
+ key: "once",
3483
+ value: function once(event, listener) {
3484
+ var _this2 = this;
3485
+ var _wrapper = function wrapper() {
3486
+ _this2.off(event, _wrapper);
3487
+ listener.apply(void 0, arguments);
3488
+ };
3489
+ this.on(event, _wrapper);
3490
+ return {
3491
+ remove: function remove() {
3492
+ return _this2.off(event, _wrapper);
3493
+ }
3494
+ };
3495
+ }
3496
+
3497
+ /**
3498
+ * Removes a listener for a specific event.
3499
+ *
3500
+ * @param {string} event - The name of the event to stop listening for.
3501
+ * @param {Function} listener - The function to remove from the event listeners.
3502
+ */
3503
+ }, {
3504
+ key: "off",
3505
+ value: function off(event, listener) {
3506
+ var listeners = _classPrivateFieldGet$2(_events, this).get(event);
3507
+ if (listeners) {
3508
+ listeners["delete"](listener);
3509
+ if (listeners.size === 0) {
3510
+ _classPrivateFieldGet$2(_events, this)["delete"](event);
3511
+ }
3512
+ }
3513
+ }
3514
+
3515
+ /**
3516
+ * Emits an event, calling all registered listeners with the provided arguments.
3517
+ *
3518
+ * @param {string} event - The name of the event to emit.
3519
+ * @param {...*} args - The arguments to pass to the listeners.
3520
+ */
3521
+ }, {
3522
+ key: "emit",
3523
+ value: function emit(event) {
3524
+ var listeners = _classPrivateFieldGet$2(_events, this).get(event);
3525
+ if (listeners) {
3526
+ var snapshot = _toConsumableArray(listeners);
3527
+ for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
3528
+ args[_key - 1] = arguments[_key];
3529
+ }
3530
+ var _iterator = _createForOfIteratorHelper(snapshot),
3531
+ _step;
3532
+ try {
3533
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
3534
+ var listener = _step.value;
3535
+ try {
3536
+ listener.apply(void 0, args);
3537
+ } catch (err) {
3538
+ console.error("Error in listener for \"".concat(event, "\":"), err);
3539
+ }
3540
+ }
3541
+ } catch (err) {
3542
+ _iterator.e(err);
3543
+ } finally {
3544
+ _iterator.f();
3545
+ }
3546
+ }
3547
+ }
3548
+
3549
+ /**
3550
+ * Clears all listeners for a specific event or all events if no event is specified.
3551
+ *
3552
+ * @param {string} [event] - The name of the event to clear listeners for. If not provided, all events will be cleared.
3553
+ */
3554
+ }, {
3555
+ key: "clear",
3556
+ value: function clear(event) {
3557
+ if (event !== undefined) {
3558
+ _classPrivateFieldGet$2(_events, this)["delete"](event);
3559
+ } else {
3560
+ _classPrivateFieldGet$2(_events, this).clear();
3561
+ }
3562
+ }
3563
+ }]);
3564
+ }();
3565
+
3428
3566
  function _classPrivateFieldInitSpec$1(e, t, a) { _checkPrivateRedeclaration$1(e, t), t.set(e, a); }
3429
3567
  function _checkPrivateRedeclaration$1(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
3430
3568
  function _classPrivateFieldSet$1(s, a, r) { return s.set(_assertClassBrand$1(s, a), r), r; }
@@ -3837,5 +3975,5 @@ var TreeSet = /*#__PURE__*/function () {
3837
3975
  }]);
3838
3976
  }();
3839
3977
 
3840
- export { ARRAY, FLOAT, FLOAT_ANY, FLOAT_LAX, FLOAT_LAX_ANY, INT, INT_ANY, INT_LAX, INT_LAX_ANY, ISSET, IS_ARRAY, IS_OBJECT, LeUtils, LinkedList, OBJECT, STRING, STRING_ANY, SerializableMap, TreeSet };
3978
+ export { ARRAY, EventEmitter, FLOAT, FLOAT_ANY, FLOAT_LAX, FLOAT_LAX_ANY, INT, INT_ANY, INT_LAX, INT_LAX_ANY, ISSET, IS_ARRAY, IS_OBJECT, LeUtils, LinkedList, OBJECT, STRING, STRING_ANY, SerializableMap, TreeSet };
3841
3979
  //# sourceMappingURL=index.js.map