@blackglory/structures 0.11.1 → 0.11.2

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.
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Emitter = void 0;
4
+ const go_1 = require("@blackglory/go");
4
5
  class Emitter {
5
6
  constructor() {
6
7
  this.map = new Map();
@@ -9,18 +10,25 @@ class Emitter {
9
10
  return this.constructor.name;
10
11
  }
11
12
  on(event, listener) {
12
- if (!this.map.has(event)) {
13
- this.map.set(event, new Set());
14
- }
15
- const set = this.map.get(event);
13
+ const set = (0, go_1.go)(() => {
14
+ const set = this.map.get(event);
15
+ if (set) {
16
+ return set;
17
+ }
18
+ else {
19
+ const set = new Set();
20
+ this.map.set(event, set);
21
+ return set;
22
+ }
23
+ });
16
24
  set.add(handler);
17
25
  return () => {
18
- if (!this.map.has(event))
19
- return;
20
26
  const handlers = this.map.get(event);
21
- handlers.delete(handler);
22
- if (handlers.size === 0) {
23
- this.map.delete(event);
27
+ if (handlers) {
28
+ const deleted = handlers.delete(handler);
29
+ if (deleted && handlers.size === 0) {
30
+ this.map.delete(event);
31
+ }
24
32
  }
25
33
  };
26
34
  function handler(...args) {
@@ -35,9 +43,8 @@ class Emitter {
35
43
  return removeListener;
36
44
  }
37
45
  emit(event, ...args) {
38
- if (!this.map.has(event))
39
- return;
40
- this.map.get(event).forEach(cb => cb(...args));
46
+ var _a;
47
+ (_a = this.map.get(event)) === null || _a === void 0 ? void 0 : _a.forEach(cb => cb(...args));
41
48
  }
42
49
  }
43
50
  exports.Emitter = Emitter;
@@ -1 +1 @@
1
- {"version":3,"file":"emitter.js","sourceRoot":"","sources":["../../src/emitter.ts"],"names":[],"mappings":";;;AAEA,MAAa,OAAO;IAApB;QACU,QAAG,GAAG,IAAI,GAAG,EAGlB,CAAA;IAoDL,CAAC;IAlDC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;QACtB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAA;IAC9B,CAAC;IAED,EAAE,CACA,KAAQ,EACR,QAAkC;QAElC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YACxB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,GAAG,EAAE,CAAC,CAAA;SAC/B;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAE,CAAA;QAChC,GAAG,CAAC,GAAG,CAAC,OAAmD,CAAC,CAAA;QAE5D,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC;gBAAE,OAAM;YAEhC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAE,CAAA;YACrC,QAAQ,CAAC,MAAM,CAAC,OAAmD,CAAC,CAAA;YACpE,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC,EAAE;gBACvB,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;aACvB;QACH,CAAC,CAAA;QAED,SAAS,OAAO,CAAC,GAAG,IAA0C;YAC5D,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAA;QACnB,CAAC;IACH,CAAC;IAED,IAAI,CACF,KAAQ,EACR,QAAkC;QAElC,MAAM,cAAc,GAAG,IAAI,CAAC,EAAE,CAC5B,KAAK,EACL,CAAC,GAAG,IAA0C,EAAE,EAAE;YAChD,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAA;YACjB,cAAc,EAAE,CAAA;QAClB,CAAC,CACF,CAAA;QAED,OAAO,cAAc,CAAA;IACvB,CAAC;IAED,IAAI,CAA8B,KAAQ,EAAE,GAAG,IAAoB;QACjE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC;YAAE,OAAM;QAEhC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAA;IACjD,CAAC;CACF;AAxDD,0BAwDC"}
1
+ {"version":3,"file":"emitter.js","sourceRoot":"","sources":["../../src/emitter.ts"],"names":[],"mappings":";;;AAAA,uCAAmC;AAInC,MAAa,OAAO;IAApB;QACU,QAAG,GAAG,IAAI,GAAG,EAGlB,CAAA;IAyDL,CAAC;IAvDC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;QACtB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAA;IAC9B,CAAC;IAED,EAAE,CACA,KAAQ,EACR,QAAkC;QAElC,MAAM,GAAG,GAAG,IAAA,OAAE,EAAC,GAAG,EAAE;YAClB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YAC/B,IAAI,GAAG,EAAE;gBACP,OAAO,GAAG,CAAA;aACX;iBAAM;gBACL,MAAM,GAAG,GAAG,IAAI,GAAG,EAA4C,CAAA;gBAC/D,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;gBACxB,OAAO,GAAG,CAAA;aACX;QACH,CAAC,CAAC,CAAA;QACF,GAAG,CAAC,GAAG,CAAC,OAAmD,CAAC,CAAA;QAE5D,OAAO,GAAG,EAAE;YACV,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YACpC,IAAI,QAAQ,EAAE;gBACZ,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAC7B,OAAmD,CACpD,CAAA;gBACD,IAAI,OAAO,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC,EAAE;oBAClC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;iBACvB;aACF;QACH,CAAC,CAAA;QAED,SAAS,OAAO,CAAC,GAAG,IAA0C;YAC5D,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAA;QACnB,CAAC;IACH,CAAC;IAED,IAAI,CACF,KAAQ,EACR,QAAkC;QAElC,MAAM,cAAc,GAAG,IAAI,CAAC,EAAE,CAC5B,KAAK,EACL,CAAC,GAAG,IAA0C,EAAE,EAAE;YAChD,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAA;YACjB,cAAc,EAAE,CAAA;QAClB,CAAC,CACF,CAAA;QAED,OAAO,cAAc,CAAA;IACvB,CAAC;IAED,IAAI,CAA8B,KAAQ,EAAE,GAAG,IAAoB;;QACjE,MAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,0CAAE,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAA;IACjD,CAAC;CACF;AA7DD,0BA6DC"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Emitter = void 0;
4
+ const go_1 = require("@blackglory/go");
4
5
  class Emitter {
5
6
  constructor() {
6
7
  this.map = new Map();
@@ -9,18 +10,25 @@ class Emitter {
9
10
  return this.constructor.name;
10
11
  }
11
12
  on(event, listener) {
12
- if (!this.map.has(event)) {
13
- this.map.set(event, new Set());
14
- }
15
- const set = this.map.get(event);
13
+ const set = (0, go_1.go)(() => {
14
+ const set = this.map.get(event);
15
+ if (set) {
16
+ return set;
17
+ }
18
+ else {
19
+ const set = new Set();
20
+ this.map.set(event, set);
21
+ return set;
22
+ }
23
+ });
16
24
  set.add(handler);
17
25
  return () => {
18
- if (!this.map.has(event))
19
- return;
20
26
  const handlers = this.map.get(event);
21
- handlers.delete(handler);
22
- if (handlers.size === 0) {
23
- this.map.delete(event);
27
+ if (handlers) {
28
+ const deleted = handlers.delete(handler);
29
+ if (deleted && handlers.size === 0) {
30
+ this.map.delete(event);
31
+ }
24
32
  }
25
33
  };
26
34
  function handler(...args) {
@@ -35,9 +43,8 @@ class Emitter {
35
43
  return removeListener;
36
44
  }
37
45
  emit(event, ...args) {
38
- if (!this.map.has(event))
39
- return;
40
- this.map.get(event).forEach(cb => cb(...args));
46
+ var _a;
47
+ (_a = this.map.get(event)) === null || _a === void 0 ? void 0 : _a.forEach(cb => cb(...args));
41
48
  }
42
49
  }
43
50
  exports.Emitter = Emitter;
@@ -1 +1 @@
1
- {"version":3,"file":"emitter.js","sourceRoot":"","sources":["../../src/emitter.ts"],"names":[],"mappings":";;;AAEA,MAAa,OAAO;IAApB;QACU,QAAG,GAAG,IAAI,GAAG,EAGlB,CAAA;IAoDL,CAAC;IAlDC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;QACtB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAA;IAC9B,CAAC;IAED,EAAE,CACA,KAAQ,EACR,QAAkC;QAElC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YACxB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,GAAG,EAAE,CAAC,CAAA;SAC/B;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAE,CAAA;QAChC,GAAG,CAAC,GAAG,CAAC,OAAmD,CAAC,CAAA;QAE5D,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC;gBAAE,OAAM;YAEhC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAE,CAAA;YACrC,QAAQ,CAAC,MAAM,CAAC,OAAmD,CAAC,CAAA;YACpE,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC,EAAE;gBACvB,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;aACvB;QACH,CAAC,CAAA;QAED,SAAS,OAAO,CAAC,GAAG,IAA0C;YAC5D,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAA;QACnB,CAAC;IACH,CAAC;IAED,IAAI,CACF,KAAQ,EACR,QAAkC;QAElC,MAAM,cAAc,GAAG,IAAI,CAAC,EAAE,CAC5B,KAAK,EACL,CAAC,GAAG,IAA0C,EAAE,EAAE;YAChD,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAA;YACjB,cAAc,EAAE,CAAA;QAClB,CAAC,CACF,CAAA;QAED,OAAO,cAAc,CAAA;IACvB,CAAC;IAED,IAAI,CAA8B,KAAQ,EAAE,GAAG,IAAoB;QACjE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC;YAAE,OAAM;QAEhC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAA;IACjD,CAAC;CACF;AAxDD,0BAwDC"}
1
+ {"version":3,"file":"emitter.js","sourceRoot":"","sources":["../../src/emitter.ts"],"names":[],"mappings":";;;AAAA,uCAAmC;AAInC,MAAa,OAAO;IAApB;QACU,QAAG,GAAG,IAAI,GAAG,EAGlB,CAAA;IAyDL,CAAC;IAvDC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;QACtB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAA;IAC9B,CAAC;IAED,EAAE,CACA,KAAQ,EACR,QAAkC;QAElC,MAAM,GAAG,GAAG,IAAA,OAAE,EAAC,GAAG,EAAE;YAClB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YAC/B,IAAI,GAAG,EAAE;gBACP,OAAO,GAAG,CAAA;aACX;iBAAM;gBACL,MAAM,GAAG,GAAG,IAAI,GAAG,EAA4C,CAAA;gBAC/D,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;gBACxB,OAAO,GAAG,CAAA;aACX;QACH,CAAC,CAAC,CAAA;QACF,GAAG,CAAC,GAAG,CAAC,OAAmD,CAAC,CAAA;QAE5D,OAAO,GAAG,EAAE;YACV,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YACpC,IAAI,QAAQ,EAAE;gBACZ,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAC7B,OAAmD,CACpD,CAAA;gBACD,IAAI,OAAO,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC,EAAE;oBAClC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;iBACvB;aACF;QACH,CAAC,CAAA;QAED,SAAS,OAAO,CAAC,GAAG,IAA0C;YAC5D,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAA;QACnB,CAAC;IACH,CAAC;IAED,IAAI,CACF,KAAQ,EACR,QAAkC;QAElC,MAAM,cAAc,GAAG,IAAI,CAAC,EAAE,CAC5B,KAAK,EACL,CAAC,GAAG,IAA0C,EAAE,EAAE;YAChD,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAA;YACjB,cAAc,EAAE,CAAA;QAClB,CAAC,CACF,CAAA;QAED,OAAO,cAAc,CAAA;IACvB,CAAC;IAED,IAAI,CAA8B,KAAQ,EAAE,GAAG,IAAoB;;QACjE,MAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,0CAAE,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAA;IACjD,CAAC;CACF;AA7DD,0BA6DC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@blackglory/structures",
3
- "version": "0.11.1",
3
+ "version": "0.11.2",
4
4
  "description": "",
5
5
  "files": [
6
6
  "lib",
@@ -73,6 +73,7 @@
73
73
  },
74
74
  "dependencies": {
75
75
  "@blackglory/errors": "^2.2.2",
76
+ "@blackglory/go": "^1.1.2",
76
77
  "@blackglory/types": "^1.3.0",
77
78
  "extra-timers": "^0.2.5",
78
79
  "iterable-operator": "^1.2.1",