@vxrn/emitter 1.1.369 → 1.1.370

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.
@@ -26,6 +26,9 @@ __export(src_exports, {
26
26
  module.exports = __toCommonJS(src_exports);
27
27
  var import_react = require("react");
28
28
  class Emitter {
29
+ constructor(defaultValue) {
30
+ this.defaultValue = defaultValue;
31
+ }
29
32
  disposables = /* @__PURE__ */new Set();
30
33
  listen = disposable => (this.disposables.add(disposable), () => {
31
34
  this.disposables.delete(disposable);
@@ -36,12 +39,16 @@ class Emitter {
36
39
  use = (cb, args) => {
37
40
  (0, import_react.useEffect)(() => this.listen(cb), args ?? []);
38
41
  };
42
+ useValue = () => {
43
+ const [state, setState] = (0, import_react.useState)(this.defaultValue);
44
+ return this.use(setState), state;
45
+ };
39
46
  nextValue = () => new Promise(res => {
40
47
  const dispose = this.listen(val => {
41
48
  dispose(), res(val);
42
49
  });
43
50
  });
44
51
  }
45
- function createEmitter() {
46
- return new Emitter();
52
+ function createEmitter(defaultValue) {
53
+ return new Emitter(defaultValue);
47
54
  }
package/dist/cjs/index.js CHANGED
@@ -20,6 +20,9 @@ __export(src_exports, {
20
20
  module.exports = __toCommonJS(src_exports);
21
21
  var import_react = require("react");
22
22
  class Emitter {
23
+ constructor(defaultValue) {
24
+ this.defaultValue = defaultValue;
25
+ }
23
26
  disposables = /* @__PURE__ */ new Set();
24
27
  listen = (disposable) => (this.disposables.add(disposable), () => {
25
28
  this.disposables.delete(disposable);
@@ -30,13 +33,17 @@ class Emitter {
30
33
  use = (cb, args) => {
31
34
  (0, import_react.useEffect)(() => this.listen(cb), args ?? []);
32
35
  };
36
+ useValue = () => {
37
+ const [state, setState] = (0, import_react.useState)(this.defaultValue);
38
+ return this.use(setState), state;
39
+ };
33
40
  nextValue = () => new Promise((res) => {
34
41
  const dispose = this.listen((val) => {
35
42
  dispose(), res(val);
36
43
  });
37
44
  });
38
45
  }
39
- function createEmitter() {
40
- return new Emitter();
46
+ function createEmitter(defaultValue) {
47
+ return new Emitter(defaultValue);
41
48
  }
42
49
  //# sourceMappingURL=index.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/index.ts"],
4
- "mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA0B;AAEnB,MAAM,QAAiB;AAAA,EACpB,cAAc,oBAAI,IAAuB;AAAA,EAEjD,SAAS,CAAC,gBACR,KAAK,YAAY,IAAI,UAAU,GACxB,MAAM;AACX,SAAK,YAAY,OAAO,UAAU;AAAA,EACpC;AAAA,EAGF,OAAO,CAAC,SAAY;AAClB,SAAK,YAAY,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;AAAA,EAC3C;AAAA,EAEA,MAAM,CAAC,IAAqB,SAAiB;AAC3C,gCAAU,MACD,KAAK,OAAO,EAAE,GACpB,QAAQ,CAAC,CAAC;AAAA,EACf;AAAA,EAEA,YAAY,MACH,IAAI,QAAW,CAAC,QAAQ;AAC7B,UAAM,UAAU,KAAK,OAAO,CAAC,QAAQ;AACnC,cAAQ,GACR,IAAI,GAAG;AAAA,IACT,CAAC;AAAA,EACH,CAAC;AAEL;AAEO,SAAS,gBAAmB;AACjC,SAAO,IAAI,QAAW;AACxB;",
4
+ "mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAoC;AAE7B,MAAM,QAAiB;AAAA,EAG5B,YAAmB,cAAkB;AAAlB;AAAA,EAAmB;AAAA,EAF9B,cAAc,oBAAI,IAAuB;AAAA,EAIjD,SAAS,CAAC,gBACR,KAAK,YAAY,IAAI,UAAU,GACxB,MAAM;AACX,SAAK,YAAY,OAAO,UAAU;AAAA,EACpC;AAAA,EAGF,OAAO,CAAC,SAAY;AAClB,SAAK,YAAY,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;AAAA,EAC3C;AAAA,EAEA,MAAM,CAAC,IAAqB,SAAiB;AAC3C,gCAAU,MACD,KAAK,OAAO,EAAE,GACpB,QAAQ,CAAC,CAAC;AAAA,EACf;AAAA,EAEA,WAAW,MAAM;AACf,UAAM,CAAC,OAAO,QAAQ,QAAI,uBAAwB,KAAK,YAAY;AACnE,gBAAK,IAAI,QAAQ,GACV;AAAA,EACT;AAAA,EAEA,YAAY,MACH,IAAI,QAAW,CAAC,QAAQ;AAC7B,UAAM,UAAU,KAAK,OAAO,CAAC,QAAQ;AACnC,cAAQ,GACR,IAAI,GAAG;AAAA,IACT,CAAC;AAAA,EACH,CAAC;AAEL;AAEO,SAAS,cAAiB,cAAkB;AACjD,SAAO,IAAI,QAAW,YAAY;AACpC;",
5
5
  "names": []
6
6
  }
@@ -32,31 +32,34 @@ function _define_property(obj, key, value) {
32
32
  writable: !0
33
33
  }) : obj[key] = value, obj;
34
34
  }
35
- var Emitter = function Emitter2() {
35
+ var Emitter = function Emitter2(defaultValue) {
36
36
  "use strict";
37
37
  var _this = this;
38
- _class_call_check(this, Emitter2), _define_property(this, "disposables", /* @__PURE__ */ new Set()), _define_property(this, "listen", function(disposable) {
38
+ _class_call_check(this, Emitter2), _define_property(this, "defaultValue", void 0), _define_property(this, "disposables", void 0), _define_property(this, "listen", void 0), _define_property(this, "emit", void 0), _define_property(this, "use", void 0), _define_property(this, "useValue", void 0), _define_property(this, "nextValue", void 0), this.defaultValue = defaultValue, this.disposables = /* @__PURE__ */ new Set(), this.listen = function(disposable) {
39
39
  return _this.disposables.add(disposable), function() {
40
40
  _this.disposables.delete(disposable);
41
41
  };
42
- }), _define_property(this, "emit", function(next) {
42
+ }, this.emit = function(next) {
43
43
  _this.disposables.forEach(function(cb) {
44
44
  return cb(next);
45
45
  });
46
- }), _define_property(this, "use", function(cb, args) {
46
+ }, this.use = function(cb, args) {
47
47
  (0, import_react.useEffect)(function() {
48
48
  return _this.listen(cb);
49
49
  }, args ?? []);
50
- }), _define_property(this, "nextValue", function() {
50
+ }, this.useValue = function() {
51
+ var [state, setState] = (0, import_react.useState)(_this.defaultValue);
52
+ return _this.use(setState), state;
53
+ }, this.nextValue = function() {
51
54
  return new Promise(function(res) {
52
55
  var dispose = _this.listen(function(val) {
53
56
  dispose(), res(val);
54
57
  });
55
58
  });
56
- });
59
+ };
57
60
  };
58
- function createEmitter() {
59
- return new Emitter();
61
+ function createEmitter(defaultValue) {
62
+ return new Emitter(defaultValue);
60
63
  }
61
64
  // Annotate the CommonJS export names for ESM import in node:
62
65
  0 && (module.exports = {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/Users/n8/one/packages/emitter/src/index.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;;;;AAAA,mBAA0B;;;;;;;;;;;;;AAEnB,IAAMA,UAAN,SAAMA,WAAAA;;;0BAAAA,QAAAA,GACX,iBAAA,MAAQC,eAAc,oBAAIC,IAAAA,CAAAA,GAE1BC,iBAAAA,MAAAA,UAAS,SAACC,YAAAA;AACR,iBAAKH,YAAYI,IAAID,UAAAA,GACd,WAAA;AACL,YAAKH,YAAYK,OAAOF,UAAAA;IAC1B;EACF,CAAA,GAEAG,iBAAAA,MAAAA,QAAO,SAACC,MAAAA;AACN,UAAKP,YAAYQ,QAAQ,SAACC,IAAAA;aAAOA,GAAGF,IAAAA;;EACtC,CAAA,GAEAG,iBAAAA,MAAAA,OAAM,SAACD,IAAqBE,MAAAA;AAC1BC,gCAAU,WAAA;AACR,aAAO,MAAKV,OAAOO,EAAAA;IACrB,GAAGE,QAAQ,CAAA,CAAE;EACf,CAAA,GAEAE,iBAAAA,MAAAA,aAAY,WAAA;AACV,WAAO,IAAIC,QAAW,SAACC,KAAAA;AACrB,UAAMC,UAAU,MAAKd,OAAO,SAACe,KAAAA;AAC3BD,gBAAAA,GACAD,IAAIE,GAAAA;MACN,CAAA;IACF,CAAA;EACF,CAAA;;AAGK,SAASC,gBAAAA;AACd,SAAO,IAAInB,QAAAA;AACb;",
5
- "names": ["Emitter", "disposables", "Set", "listen", "disposable", "add", "delete", "emit", "next", "forEach", "cb", "use", "args", "useEffect", "nextValue", "Promise", "res", "dispose", "val", "createEmitter"]
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;AAAA,mBAAoC;;;;;;;;;;;;;AAE7B,IAAMA,UAAN,SAAMA,SAGQC,cAAgB;;;0BAHxBD,QAAAA,mDACX,iBAAA,MAAQE,eAAR,MAAA,GAIAC,iBAAAA,MAAAA,UAAAA,MAAAA,GAOAC,iBAAAA,MAAAA,QAAAA,MAAAA,GAIAC,iBAAAA,MAAAA,OAAAA,MAAAA,GAMAC,iBAAAA,MAAAA,YAAAA,MAAAA,GAMAC,iBAAAA,MAAAA,aAAAA,MAAAA,QAzBmBN,eAAAA,mBAFXC,cAAc,oBAAIM,IAAAA,QAI1BL,SAAS,SAACM,YAAAA;AACR,iBAAKP,YAAYQ,IAAID,UAAAA,GACd,WAAA;AACL,YAAKP,YAAYS,OAAOF,UAAAA;IAC1B;EACF,QAEAL,OAAO,SAACQ,MAAAA;AACN,UAAKV,YAAYW,QAAQ,SAACC,IAAAA;aAAOA,GAAGF,IAAAA;;EACtC,QAEAP,MAAM,SAACS,IAAqBC,MAAAA;AAC1BC,gCAAU,WAAA;AACR,aAAO,MAAKb,OAAOW,EAAAA;IACrB,GAAGC,QAAQ,CAAA,CAAE;EACf,QAEAT,WAAW,WAAA;AACT,QAAM,CAACW,OAAOC,QAAAA,QAAYC,uBAAwB,MAAKlB,YAAY;AACnE,iBAAKI,IAAIa,QAAAA,GACFD;EACT,QAEAV,YAAY,WAAA;AACV,WAAO,IAAIa,QAAW,SAACC,KAAAA;AACrB,UAAMC,UAAU,MAAKnB,OAAO,SAACoB,KAAAA;AAC3BD,gBAAAA,GACAD,IAAIE,GAAAA;MACN,CAAA;IACF,CAAA;EACF;;AAGK,SAASC,cAAiBvB,cAAgB;AAC/C,SAAO,IAAID,QAAWC,YAAAA;AACxB;",
5
+ "names": ["Emitter", "defaultValue", "disposables", "listen", "emit", "use", "useValue", "nextValue", "Set", "disposable", "add", "delete", "next", "forEach", "cb", "args", "useEffect", "state", "setState", "useState", "Promise", "res", "dispose", "val", "createEmitter"]
6
6
  }
package/dist/esm/index.js CHANGED
@@ -1,5 +1,8 @@
1
- import { useEffect } from "react";
1
+ import { useEffect, useState } from "react";
2
2
  class Emitter {
3
+ constructor(defaultValue) {
4
+ this.defaultValue = defaultValue;
5
+ }
3
6
  disposables = /* @__PURE__ */ new Set();
4
7
  listen = (disposable) => (this.disposables.add(disposable), () => {
5
8
  this.disposables.delete(disposable);
@@ -10,14 +13,18 @@ class Emitter {
10
13
  use = (cb, args) => {
11
14
  useEffect(() => this.listen(cb), args ?? []);
12
15
  };
16
+ useValue = () => {
17
+ const [state, setState] = useState(this.defaultValue);
18
+ return this.use(setState), state;
19
+ };
13
20
  nextValue = () => new Promise((res) => {
14
21
  const dispose = this.listen((val) => {
15
22
  dispose(), res(val);
16
23
  });
17
24
  });
18
25
  }
19
- function createEmitter() {
20
- return new Emitter();
26
+ function createEmitter(defaultValue) {
27
+ return new Emitter(defaultValue);
21
28
  }
22
29
  export {
23
30
  Emitter,
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/index.ts"],
4
- "mappings": "AAAA,SAAS,iBAAiB;AAEnB,MAAM,QAAiB;AAAA,EACpB,cAAc,oBAAI,IAAuB;AAAA,EAEjD,SAAS,CAAC,gBACR,KAAK,YAAY,IAAI,UAAU,GACxB,MAAM;AACX,SAAK,YAAY,OAAO,UAAU;AAAA,EACpC;AAAA,EAGF,OAAO,CAAC,SAAY;AAClB,SAAK,YAAY,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;AAAA,EAC3C;AAAA,EAEA,MAAM,CAAC,IAAqB,SAAiB;AAC3C,cAAU,MACD,KAAK,OAAO,EAAE,GACpB,QAAQ,CAAC,CAAC;AAAA,EACf;AAAA,EAEA,YAAY,MACH,IAAI,QAAW,CAAC,QAAQ;AAC7B,UAAM,UAAU,KAAK,OAAO,CAAC,QAAQ;AACnC,cAAQ,GACR,IAAI,GAAG;AAAA,IACT,CAAC;AAAA,EACH,CAAC;AAEL;AAEO,SAAS,gBAAmB;AACjC,SAAO,IAAI,QAAW;AACxB;",
4
+ "mappings": "AAAA,SAAS,WAAW,gBAAgB;AAE7B,MAAM,QAAiB;AAAA,EAG5B,YAAmB,cAAkB;AAAlB;AAAA,EAAmB;AAAA,EAF9B,cAAc,oBAAI,IAAuB;AAAA,EAIjD,SAAS,CAAC,gBACR,KAAK,YAAY,IAAI,UAAU,GACxB,MAAM;AACX,SAAK,YAAY,OAAO,UAAU;AAAA,EACpC;AAAA,EAGF,OAAO,CAAC,SAAY;AAClB,SAAK,YAAY,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;AAAA,EAC3C;AAAA,EAEA,MAAM,CAAC,IAAqB,SAAiB;AAC3C,cAAU,MACD,KAAK,OAAO,EAAE,GACpB,QAAQ,CAAC,CAAC;AAAA,EACf;AAAA,EAEA,WAAW,MAAM;AACf,UAAM,CAAC,OAAO,QAAQ,IAAI,SAAwB,KAAK,YAAY;AACnE,gBAAK,IAAI,QAAQ,GACV;AAAA,EACT;AAAA,EAEA,YAAY,MACH,IAAI,QAAW,CAAC,QAAQ;AAC7B,UAAM,UAAU,KAAK,OAAO,CAAC,QAAQ;AACnC,cAAQ,GACR,IAAI,GAAG;AAAA,IACT,CAAC;AAAA,EACH,CAAC;AAEL;AAEO,SAAS,cAAiB,cAAkB;AACjD,SAAO,IAAI,QAAW,YAAY;AACpC;",
5
5
  "names": []
6
6
  }
@@ -1,5 +1,8 @@
1
- import { useEffect } from "react";
1
+ import { useEffect, useState } from "react";
2
2
  class Emitter {
3
+ constructor(defaultValue) {
4
+ this.defaultValue = defaultValue;
5
+ }
3
6
  disposables = /* @__PURE__ */new Set();
4
7
  listen = disposable => (this.disposables.add(disposable), () => {
5
8
  this.disposables.delete(disposable);
@@ -10,14 +13,18 @@ class Emitter {
10
13
  use = (cb, args) => {
11
14
  useEffect(() => this.listen(cb), args ?? []);
12
15
  };
16
+ useValue = () => {
17
+ const [state, setState] = useState(this.defaultValue);
18
+ return this.use(setState), state;
19
+ };
13
20
  nextValue = () => new Promise(res => {
14
21
  const dispose = this.listen(val => {
15
22
  dispose(), res(val);
16
23
  });
17
24
  });
18
25
  }
19
- function createEmitter() {
20
- return new Emitter();
26
+ function createEmitter(defaultValue) {
27
+ return new Emitter(defaultValue);
21
28
  }
22
29
  export { Emitter, createEmitter };
23
30
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"names":["useEffect","Emitter","disposables","Set","listen","disposable","add","delete","emit","next","forEach","cb","use","args","nextValue","Promise","res","dispose","val","createEmitter"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,SAAA,QAAiB;AAEnB,MAAMC,OAAA,CAAiB;EACpBC,WAAA,GAAc,mBAAIC,GAAA,CAAuB;EAEjDC,MAAA,GAAUC,UAAA,KACR,KAAKH,WAAA,CAAYI,GAAA,CAAID,UAAU,GACxB,MAAM;IACX,KAAKH,WAAA,CAAYK,MAAA,CAAOF,UAAU;EACpC;EAGFG,IAAA,GAAQC,IAAA,IAAY;IAClB,KAAKP,WAAA,CAAYQ,OAAA,CAASC,EAAA,IAAOA,EAAA,CAAGF,IAAI,CAAC;EAC3C;EAEAG,GAAA,GAAMA,CAACD,EAAA,EAAqBE,IAAA,KAAiB;IAC3Cb,SAAA,CAAU,MACD,KAAKI,MAAA,CAAOO,EAAE,GACpBE,IAAA,IAAQ,EAAE;EACf;EAEAC,SAAA,GAAYA,CAAA,KACH,IAAIC,OAAA,CAAYC,GAAA,IAAQ;IAC7B,MAAMC,OAAA,GAAU,KAAKb,MAAA,CAAQc,GAAA,IAAQ;MACnCD,OAAA,CAAQ,GACRD,GAAA,CAAIE,GAAG;IACT,CAAC;EACH,CAAC;AAEL;AAEO,SAASC,cAAA,EAAmB;EACjC,OAAO,IAAIlB,OAAA,CAAW;AACxB","ignoreList":[]}
1
+ {"version":3,"names":["useEffect","useState","Emitter","constructor","defaultValue","disposables","Set","listen","disposable","add","delete","emit","next","forEach","cb","use","args","useValue","state","setState","nextValue","Promise","res","dispose","val","createEmitter"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,SAAA,EAAWC,QAAA,QAAgB;AAE7B,MAAMC,OAAA,CAAiB;EAG5BC,YAAmBC,YAAA,EAAkB;IAAlB,KAAAA,YAAA,GAAAA,YAAA;EAAmB;EAF9BC,WAAA,GAAc,mBAAIC,GAAA,CAAuB;EAIjDC,MAAA,GAAUC,UAAA,KACR,KAAKH,WAAA,CAAYI,GAAA,CAAID,UAAU,GACxB,MAAM;IACX,KAAKH,WAAA,CAAYK,MAAA,CAAOF,UAAU;EACpC;EAGFG,IAAA,GAAQC,IAAA,IAAY;IAClB,KAAKP,WAAA,CAAYQ,OAAA,CAASC,EAAA,IAAOA,EAAA,CAAGF,IAAI,CAAC;EAC3C;EAEAG,GAAA,GAAMA,CAACD,EAAA,EAAqBE,IAAA,KAAiB;IAC3ChB,SAAA,CAAU,MACD,KAAKO,MAAA,CAAOO,EAAE,GACpBE,IAAA,IAAQ,EAAE;EACf;EAEAC,QAAA,GAAWA,CAAA,KAAM;IACf,MAAM,CAACC,KAAA,EAAOC,QAAQ,IAAIlB,QAAA,CAAwB,KAAKG,YAAY;IACnE,YAAKW,GAAA,CAAII,QAAQ,GACVD,KAAA;EACT;EAEAE,SAAA,GAAYA,CAAA,KACH,IAAIC,OAAA,CAAYC,GAAA,IAAQ;IAC7B,MAAMC,OAAA,GAAU,KAAKhB,MAAA,CAAQiB,GAAA,IAAQ;MACnCD,OAAA,CAAQ,GACRD,GAAA,CAAIE,GAAG;IACT,CAAC;EACH,CAAC;AAEL;AAEO,SAASC,cAAiBrB,YAAA,EAAkB;EACjD,OAAO,IAAIF,OAAA,CAAWE,YAAY;AACpC","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import { useEffect } from "react";
1
+ import { useEffect, useState } from "react";
2
2
  function _class_call_check(instance, Constructor) {
3
3
  if (!(instance instanceof Constructor))
4
4
  throw new TypeError("Cannot call a class as a function");
@@ -11,31 +11,34 @@ function _define_property(obj, key, value) {
11
11
  writable: !0
12
12
  }) : obj[key] = value, obj;
13
13
  }
14
- var Emitter = function Emitter2() {
14
+ var Emitter = function Emitter2(defaultValue) {
15
15
  "use strict";
16
16
  var _this = this;
17
- _class_call_check(this, Emitter2), _define_property(this, "disposables", /* @__PURE__ */ new Set()), _define_property(this, "listen", function(disposable) {
17
+ _class_call_check(this, Emitter2), _define_property(this, "defaultValue", void 0), _define_property(this, "disposables", void 0), _define_property(this, "listen", void 0), _define_property(this, "emit", void 0), _define_property(this, "use", void 0), _define_property(this, "useValue", void 0), _define_property(this, "nextValue", void 0), this.defaultValue = defaultValue, this.disposables = /* @__PURE__ */ new Set(), this.listen = function(disposable) {
18
18
  return _this.disposables.add(disposable), function() {
19
19
  _this.disposables.delete(disposable);
20
20
  };
21
- }), _define_property(this, "emit", function(next) {
21
+ }, this.emit = function(next) {
22
22
  _this.disposables.forEach(function(cb) {
23
23
  return cb(next);
24
24
  });
25
- }), _define_property(this, "use", function(cb, args) {
25
+ }, this.use = function(cb, args) {
26
26
  useEffect(function() {
27
27
  return _this.listen(cb);
28
28
  }, args ?? []);
29
- }), _define_property(this, "nextValue", function() {
29
+ }, this.useValue = function() {
30
+ var [state, setState] = useState(_this.defaultValue);
31
+ return _this.use(setState), state;
32
+ }, this.nextValue = function() {
30
33
  return new Promise(function(res) {
31
34
  var dispose = _this.listen(function(val) {
32
35
  dispose(), res(val);
33
36
  });
34
37
  });
35
- });
38
+ };
36
39
  };
37
- function createEmitter() {
38
- return new Emitter();
40
+ function createEmitter(defaultValue) {
41
+ return new Emitter(defaultValue);
39
42
  }
40
43
  export {
41
44
  Emitter,
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/Users/n8/one/packages/emitter/src/index.ts"],
4
- "mappings": "AAAA,SAASA,iBAAiB;;;;;;;;;;;;;AAEnB,IAAMC,UAAN,SAAMA,WAAAA;;;0BAAAA,QAAAA,GACX,iBAAA,MAAQC,eAAc,oBAAIC,IAAAA,CAAAA,GAE1BC,iBAAAA,MAAAA,UAAS,SAACC,YAAAA;AACR,iBAAKH,YAAYI,IAAID,UAAAA,GACd,WAAA;AACL,YAAKH,YAAYK,OAAOF,UAAAA;IAC1B;EACF,CAAA,GAEAG,iBAAAA,MAAAA,QAAO,SAACC,MAAAA;AACN,UAAKP,YAAYQ,QAAQ,SAACC,IAAAA;aAAOA,GAAGF,IAAAA;;EACtC,CAAA,GAEAG,iBAAAA,MAAAA,OAAM,SAACD,IAAqBE,MAAAA;AAC1Bb,cAAU,WAAA;AACR,aAAO,MAAKI,OAAOO,EAAAA;IACrB,GAAGE,QAAQ,CAAA,CAAE;EACf,CAAA,GAEAC,iBAAAA,MAAAA,aAAY,WAAA;AACV,WAAO,IAAIC,QAAW,SAACC,KAAAA;AACrB,UAAMC,UAAU,MAAKb,OAAO,SAACc,KAAAA;AAC3BD,gBAAAA,GACAD,IAAIE,GAAAA;MACN,CAAA;IACF,CAAA;EACF,CAAA;;AAGK,SAASC,gBAAAA;AACd,SAAO,IAAIlB,QAAAA;AACb;",
5
- "names": ["useEffect", "Emitter", "disposables", "Set", "listen", "disposable", "add", "delete", "emit", "next", "forEach", "cb", "use", "args", "nextValue", "Promise", "res", "dispose", "val", "createEmitter"]
4
+ "mappings": "AAAA,SAASA,WAAWC,gBAAgB;;;;;;;;;;;;;AAE7B,IAAMC,UAAN,SAAMA,SAGQC,cAAgB;;;0BAHxBD,QAAAA,mDACX,iBAAA,MAAQE,eAAR,MAAA,GAIAC,iBAAAA,MAAAA,UAAAA,MAAAA,GAOAC,iBAAAA,MAAAA,QAAAA,MAAAA,GAIAC,iBAAAA,MAAAA,OAAAA,MAAAA,GAMAC,iBAAAA,MAAAA,YAAAA,MAAAA,GAMAC,iBAAAA,MAAAA,aAAAA,MAAAA,QAzBmBN,eAAAA,mBAFXC,cAAc,oBAAIM,IAAAA,QAI1BL,SAAS,SAACM,YAAAA;AACR,iBAAKP,YAAYQ,IAAID,UAAAA,GACd,WAAA;AACL,YAAKP,YAAYS,OAAOF,UAAAA;IAC1B;EACF,QAEAL,OAAO,SAACQ,MAAAA;AACN,UAAKV,YAAYW,QAAQ,SAACC,IAAAA;aAAOA,GAAGF,IAAAA;;EACtC,QAEAP,MAAM,SAACS,IAAqBC,MAAAA;AAC1BjB,cAAU,WAAA;AACR,aAAO,MAAKK,OAAOW,EAAAA;IACrB,GAAGC,QAAQ,CAAA,CAAE;EACf,QAEAT,WAAW,WAAA;AACT,QAAM,CAACU,OAAOC,QAAAA,IAAYlB,SAAwB,MAAKE,YAAY;AACnE,iBAAKI,IAAIY,QAAAA,GACFD;EACT,QAEAT,YAAY,WAAA;AACV,WAAO,IAAIW,QAAW,SAACC,KAAAA;AACrB,UAAMC,UAAU,MAAKjB,OAAO,SAACkB,KAAAA;AAC3BD,gBAAAA,GACAD,IAAIE,GAAAA;MACN,CAAA;IACF,CAAA;EACF;;AAGK,SAASC,cAAiBrB,cAAgB;AAC/C,SAAO,IAAID,QAAWC,YAAAA;AACxB;",
5
+ "names": ["useEffect", "useState", "Emitter", "defaultValue", "disposables", "listen", "emit", "use", "useValue", "nextValue", "Set", "disposable", "add", "delete", "next", "forEach", "cb", "args", "state", "setState", "Promise", "res", "dispose", "val", "createEmitter"]
6
6
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vxrn/emitter",
3
- "version": "1.1.369",
3
+ "version": "1.1.370",
4
4
  "sideEffects": false,
5
5
  "source": "src/index.ts",
6
6
  "types": "./src/index.ts",
package/src/index.ts CHANGED
@@ -1,8 +1,10 @@
1
- import { useEffect } from 'react'
1
+ import { useEffect, useState } from 'react'
2
2
 
3
3
  export class Emitter<const T> {
4
4
  private disposables = new Set<(cb: any) => void>()
5
5
 
6
+ constructor(public defaultValue?: T) {}
7
+
6
8
  listen = (disposable: (cb: T) => void) => {
7
9
  this.disposables.add(disposable)
8
10
  return () => {
@@ -20,6 +22,12 @@ export class Emitter<const T> {
20
22
  }, args ?? [])
21
23
  }
22
24
 
25
+ useValue = () => {
26
+ const [state, setState] = useState<T | undefined>(this.defaultValue)
27
+ this.use(setState)
28
+ return state
29
+ }
30
+
23
31
  nextValue = () => {
24
32
  return new Promise<T>((res) => {
25
33
  const dispose = this.listen((val) => {
@@ -30,6 +38,6 @@ export class Emitter<const T> {
30
38
  }
31
39
  }
32
40
 
33
- export function createEmitter<T>() {
34
- return new Emitter<T>()
41
+ export function createEmitter<T>(defaultValue?: T) {
42
+ return new Emitter<T>(defaultValue)
35
43
  }