@effect-rx/rx-react 0.41.1 → 0.42.0

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/dist/cjs/Hooks.js CHANGED
@@ -8,11 +8,12 @@
8
8
  Object.defineProperty(exports, "__esModule", {
9
9
  value: true
10
10
  });
11
- exports.useRxValue = exports.useRxSuspense = exports.useRxSubscribe = exports.useRxSetPromise = exports.useRxSet = exports.useRxRefresh = exports.useRxRefPropValue = exports.useRxRefProp = exports.useRxRef = exports.useRxMount = exports.useRxInitialValues = exports.useRx = void 0;
11
+ exports.useRxValue = exports.useRxSuspense = exports.useRxSubscribe = exports.useRxSet = exports.useRxRefresh = exports.useRxRefPropValue = exports.useRxRefProp = exports.useRxRef = exports.useRxMount = exports.useRxInitialValues = exports.useRx = void 0;
12
12
  var Registry = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@effect-rx/rx/Registry"));
13
13
  var Rx = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@effect-rx/rx/Rx"));
14
14
  var _effect = /*#__PURE__*/require("effect");
15
15
  var Cause = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/Cause"));
16
+ var Exit = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/Exit"));
16
17
  var _GlobalValue = /*#__PURE__*/require("effect/GlobalValue");
17
18
  var React = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("react"));
18
19
  var _RegistryContext = /*#__PURE__*/require("./RegistryContext.js");
@@ -101,16 +102,24 @@ exports.useRxValue = useRxValue;
101
102
  function mountRx(registry, rx) {
102
103
  React.useEffect(() => registry.mount(rx), [rx, registry]);
103
104
  }
104
- function setRx(registry, rx) {
105
- return React.useCallback(value => {
106
- if (typeof value === "function") {
107
- registry.set(rx, value(registry.get(rx)));
108
- return;
109
- } else {
105
+ function setRx(registry, rx, options) {
106
+ if (options?.mode === "promise" || options?.mode === "promiseExit") {
107
+ return React.useCallback((value, opts) => {
110
108
  registry.set(rx, value);
111
- }
109
+ const promise = _effect.Effect.runPromiseExit(Registry.getResult(registry, rx, {
110
+ suspendOnWaiting: true
111
+ }), opts);
112
+ return options.mode === "promise" ? promise.then(flattenExit) : promise;
113
+ }, [registry, rx, options.mode]);
114
+ }
115
+ return React.useCallback(value => {
116
+ registry.set(rx, typeof value === "function" ? value(registry.get(rx)) : value);
112
117
  }, [registry, rx]);
113
118
  }
119
+ const flattenExit = exit => {
120
+ if (Exit.isSuccess(exit)) return exit.value;
121
+ throw Cause.squash(exit.cause);
122
+ };
114
123
  /**
115
124
  * @since 1.0.0
116
125
  * @category hooks
@@ -124,31 +133,16 @@ const useRxMount = rx => {
124
133
  * @category hooks
125
134
  */
126
135
  exports.useRxMount = useRxMount;
127
- const useRxSet = rx => {
136
+ const useRxSet = (rx, options) => {
128
137
  const registry = React.useContext(_RegistryContext.RegistryContext);
129
138
  mountRx(registry, rx);
130
- return setRx(registry, rx);
139
+ return setRx(registry, rx, options);
131
140
  };
132
141
  /**
133
142
  * @since 1.0.0
134
143
  * @category hooks
135
144
  */
136
145
  exports.useRxSet = useRxSet;
137
- const useRxSetPromise = rx => {
138
- const registry = React.useContext(_RegistryContext.RegistryContext);
139
- mountRx(registry, rx);
140
- return React.useCallback((value, options) => {
141
- registry.set(rx, value);
142
- return _effect.Effect.runPromiseExit(Registry.getResult(registry, rx, {
143
- suspendOnWaiting: true
144
- }), options);
145
- }, [registry, rx]);
146
- };
147
- /**
148
- * @since 1.0.0
149
- * @category hooks
150
- */
151
- exports.useRxSetPromise = useRxSetPromise;
152
146
  const useRxRefresh = rx => {
153
147
  const registry = React.useContext(_RegistryContext.RegistryContext);
154
148
  mountRx(registry, rx);
@@ -161,9 +155,9 @@ const useRxRefresh = rx => {
161
155
  * @category hooks
162
156
  */
163
157
  exports.useRxRefresh = useRxRefresh;
164
- const useRx = rx => {
158
+ const useRx = (rx, options) => {
165
159
  const registry = React.useContext(_RegistryContext.RegistryContext);
166
- return [useStore(registry, rx), setRx(registry, rx)];
160
+ return [useStore(registry, rx), setRx(registry, rx, options)];
167
161
  };
168
162
  exports.useRx = useRx;
169
163
  const rxPromiseMap = /*#__PURE__*/(0, _GlobalValue.globalValue)("@effect-rx/rx-react/rxPromiseMap", () => ({
@@ -1 +1 @@
1
- {"version":3,"file":"Hooks.js","names":["Object","defineProperty","exports","value","useRxValue","useRxSuspense","useRxSubscribe","useRxSetPromise","useRxSet","useRxRefresh","useRxRefPropValue","useRxRefProp","useRxRef","useRxMount","useRxInitialValues","useRx","Registry","_interopRequireWildcard","require","Rx","_effect","Cause","_GlobalValue","React","_RegistryContext","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","getOwnPropertyDescriptor","storeRegistry","globalValue","makeStore","registry","rx","stores","undefined","store","newStore","subscribe","snapshot","getServerSnapshot","getServerValue","useStore","useSyncExternalStore","initialValuesSet","initialValues","useContext","RegistryContext","WeakSet","add","ensureNode","setValue","rxB","useMemo","map","mountRx","useEffect","mount","setRx","useCallback","options","Effect","runPromiseExit","getResult","suspendOnWaiting","refresh","rxPromiseMap","Map","rxToPromise","promise","Promise","resolve","dispose","result","_tag","waiting","setTimeout","delete","rxResultOrSuspend","includeFailure","squash","cause","immediate","ref","useState","prop"],"sources":["../../src/Hooks.ts"],"sourcesContent":[null],"mappings":";;AAAA;;;AAGA,YAAY;;AAAAA,MAAA,CAAAC,cAAA,CAAAC,OAAA;EAAAC,KAAA;AAAA;AAAAD,OAAA,CAAAE,UAAA,GAAAF,OAAA,CAAAG,aAAA,GAAAH,OAAA,CAAAI,cAAA,GAAAJ,OAAA,CAAAK,eAAA,GAAAL,OAAA,CAAAM,QAAA,GAAAN,OAAA,CAAAO,YAAA,GAAAP,OAAA,CAAAQ,iBAAA,GAAAR,OAAA,CAAAS,YAAA,GAAAT,OAAA,CAAAU,QAAA,GAAAV,OAAA,CAAAW,UAAA,GAAAX,OAAA,CAAAY,kBAAA,GAAAZ,OAAA,CAAAa,KAAA;AACZ,IAAAC,QAAA,gBAAAC,uBAAA,cAAAC,OAAA;AAEA,IAAAC,EAAA,gBAAAF,uBAAA,cAAAC,OAAA;AAEA,IAAAE,OAAA,gBAAAF,OAAA;AACA,IAAAG,KAAA,gBAAAJ,uBAAA,cAAAC,OAAA;AAEA,IAAAI,YAAA,gBAAAJ,OAAA;AACA,IAAAK,KAAA,gBAAAN,uBAAA,cAAAC,OAAA;AACA,IAAAM,gBAAA,gBAAAN,OAAA;AAAsD,SAAAD,wBAAAQ,CAAA,EAAAC,CAAA;EAAA,yBAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA;IAAAE,CAAA,OAAAF,OAAA;EAAA,QAAAV,uBAAA,YAAAA,CAAAQ,CAAA,EAAAC,CAAA;IAAA,KAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA;IAAA,IAAAM,CAAA;MAAAC,CAAA;MAAAC,CAAA;QAAAC,SAAA;QAAAC,OAAA,EAAAV;MAAA;IAAA,aAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA;IAAA,IAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA;MAAA,IAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA;MAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA;IAAA;IAAA,WAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAA/B,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAyC,wBAAA,CAAAhB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA;IAAA,OAAAO,CAAA;EAAA,GAAAR,CAAA,EAAAC,CAAA;AAAA;AAQtD,MAAMgB,aAAa,gBAAG,IAAApB,YAAA,CAAAqB,WAAW,EAC/B,mCAAmC,EACnC,MAAM,IAAIhB,OAAO,EAAwD,CAC1E;AAED,SAASiB,SAASA,CAAIC,QAA2B,EAAEC,EAAY;EAC7D,IAAIC,MAAM,GAAGL,aAAa,CAACL,GAAG,CAACQ,QAAQ,CAAC;EACxC,IAAIE,MAAM,KAAKC,SAAS,EAAE;IACxBD,MAAM,GAAG,IAAIpB,OAAO,EAAE;IACtBe,aAAa,CAACJ,GAAG,CAACO,QAAQ,EAAEE,MAAM,CAAC;EACrC;EACA,MAAME,KAAK,GAAGF,MAAM,CAACV,GAAG,CAACS,EAAE,CAAC;EAC5B,IAAIG,KAAK,KAAKD,SAAS,EAAE;IACvB,OAAOC,KAAK;EACd;EACA,MAAMC,QAAQ,GAAe;IAC3BC,SAASA,CAAClB,CAAC;MACT,OAAOY,QAAQ,CAACM,SAAS,CAACL,EAAE,EAAEb,CAAC,CAAC;IAClC,CAAC;IACDmB,QAAQA,CAAA;MACN,OAAOP,QAAQ,CAACR,GAAG,CAACS,EAAE,CAAC;IACzB,CAAC;IACDO,iBAAiBA,CAAA;MACf,OAAOlC,EAAE,CAACmC,cAAc,CAACR,EAAE,EAAED,QAAQ,CAAC;IACxC;GACD;EACDE,MAAM,CAACT,GAAG,CAACQ,EAAE,EAAEI,QAAQ,CAAC;EACxB,OAAOA,QAAQ;AACjB;AAEA,SAASK,QAAQA,CAAIV,QAA2B,EAAEC,EAAY;EAC5D,MAAMG,KAAK,GAAGL,SAAS,CAACC,QAAQ,EAAEC,EAAE,CAAC;EAErC,OAAOvB,KAAK,CAACiC,oBAAoB,CAACP,KAAK,CAACE,SAAS,EAAEF,KAAK,CAACG,QAAQ,EAAEH,KAAK,CAACI,iBAAiB,CAAC;AAC7F;AAEA,MAAMI,gBAAgB,gBAAG,IAAAnC,YAAA,CAAAqB,WAAW,EAClC,sCAAsC,EACtC,MAAM,IAAIhB,OAAO,EAA0C,CAC5D;AAED;;;;AAIO,MAAMb,kBAAkB,GAAI4C,aAAmD,IAAU;EAC9F,MAAMb,QAAQ,GAAGtB,KAAK,CAACoC,UAAU,CAACnC,gBAAA,CAAAoC,eAAe,CAAC;EAClD,IAAItB,GAAG,GAAGmB,gBAAgB,CAACpB,GAAG,CAACQ,QAAQ,CAAC;EACxC,IAAIP,GAAG,KAAKU,SAAS,EAAE;IACrBV,GAAG,GAAG,IAAIuB,OAAO,EAAE;IACnBJ,gBAAgB,CAACnB,GAAG,CAACO,QAAQ,EAAEP,GAAG,CAAC;EACrC;EACA,KAAK,MAAM,CAACQ,EAAE,EAAE3C,KAAK,CAAC,IAAIuD,aAAa,EAAE;IACvC,IAAI,CAACpB,GAAG,CAACF,GAAG,CAACU,EAAE,CAAC,EAAE;MAChBR,GAAG,CAACwB,GAAG,CAAChB,EAAE,CAAC;MACTD,QAAgB,CAACkB,UAAU,CAACjB,EAAE,CAAC,CAACkB,QAAQ,CAAC7D,KAAK,CAAC;IACnD;EACF;AACF,CAAC;AAED;;;;AAAAD,OAAA,CAAAY,kBAAA,GAAAA,kBAAA;AAIO,MAAMV,UAAU,GAGnBA,CAAI0C,EAAY,EAAEb,CAAe,KAAO;EAC1C,MAAMY,QAAQ,GAAGtB,KAAK,CAACoC,UAAU,CAACnC,gBAAA,CAAAoC,eAAe,CAAC;EAClD,IAAI3B,CAAC,EAAE;IACL,MAAMgC,GAAG,GAAG1C,KAAK,CAAC2C,OAAO,CAAC,MAAM/C,EAAE,CAACgD,GAAG,CAACrB,EAAE,EAAEb,CAAC,CAAC,EAAE,CAACa,EAAE,EAAEb,CAAC,CAAC,CAAC;IACvD,OAAOsB,QAAQ,CAACV,QAAQ,EAAEoB,GAAG,CAAC;EAChC;EACA,OAAOV,QAAQ,CAACV,QAAQ,EAAEC,EAAE,CAAC;AAC/B,CAAC;AAAA5C,OAAA,CAAAE,UAAA,GAAAA,UAAA;AAED,SAASgE,OAAOA,CAAIvB,QAA2B,EAAEC,EAAY;EAC3DvB,KAAK,CAAC8C,SAAS,CAAC,MAAMxB,QAAQ,CAACyB,KAAK,CAACxB,EAAE,CAAC,EAAE,CAACA,EAAE,EAAED,QAAQ,CAAC,CAAC;AAC3D;AAEA,SAAS0B,KAAKA,CAAO1B,QAA2B,EAAEC,EAAqB;EACrE,OAAOvB,KAAK,CAACiD,WAAW,CAAErE,KAAK,IAAI;IACjC,IAAI,OAAOA,KAAK,KAAK,UAAU,EAAE;MAC/B0C,QAAQ,CAACP,GAAG,CAACQ,EAAE,EAAG3C,KAAa,CAAC0C,QAAQ,CAACR,GAAG,CAACS,EAAE,CAAC,CAAC,CAAC;MAClD;IACF,CAAC,MAAM;MACLD,QAAQ,CAACP,GAAG,CAACQ,EAAE,EAAE3C,KAAK,CAAC;IACzB;EACF,CAAC,EAAE,CAAC0C,QAAQ,EAAEC,EAAE,CAAC,CAAC;AACpB;AAEA;;;;AAIO,MAAMjC,UAAU,GAAOiC,EAAY,IAAU;EAClD,MAAMD,QAAQ,GAAGtB,KAAK,CAACoC,UAAU,CAACnC,gBAAA,CAAAoC,eAAe,CAAC;EAClDQ,OAAO,CAACvB,QAAQ,EAAEC,EAAE,CAAC;AACvB,CAAC;AAED;;;;AAAA5C,OAAA,CAAAW,UAAA,GAAAA,UAAA;AAIO,MAAML,QAAQ,GAAUsC,EAAqB,IAAoC;EACtF,MAAMD,QAAQ,GAAGtB,KAAK,CAACoC,UAAU,CAACnC,gBAAA,CAAAoC,eAAe,CAAC;EAClDQ,OAAO,CAACvB,QAAQ,EAAEC,EAAE,CAAC;EACrB,OAAOyB,KAAK,CAAC1B,QAAQ,EAAEC,EAAE,CAAC;AAC5B,CAAC;AAED;;;;AAAA5C,OAAA,CAAAM,QAAA,GAAAA,QAAA;AAIO,MAAMD,eAAe,GAC1BuC,EAAuC,IAMT;EAC9B,MAAMD,QAAQ,GAAGtB,KAAK,CAACoC,UAAU,CAACnC,gBAAA,CAAAoC,eAAe,CAAC;EAClDQ,OAAO,CAACvB,QAAQ,EAAEC,EAAE,CAAC;EACrB,OAAOvB,KAAK,CAACiD,WAAW,CAAC,CAACrE,KAAK,EAAEsE,OAAO,KAAI;IAC1C5B,QAAQ,CAACP,GAAG,CAACQ,EAAE,EAAE3C,KAAK,CAAC;IACvB,OAAOiB,OAAA,CAAAsD,MAAM,CAACC,cAAc,CAAC3D,QAAQ,CAAC4D,SAAS,CAAC/B,QAAQ,EAAEC,EAAE,EAAE;MAAE+B,gBAAgB,EAAE;IAAI,CAAE,CAAC,EAAEJ,OAAO,CAAC;EACrG,CAAC,EAAE,CAAC5B,QAAQ,EAAEC,EAAE,CAAC,CAAC;AACpB,CAAC;AAED;;;;AAAA5C,OAAA,CAAAK,eAAA,GAAAA,eAAA;AAIO,MAAME,YAAY,GAAOqC,EAAY,IAAgB;EAC1D,MAAMD,QAAQ,GAAGtB,KAAK,CAACoC,UAAU,CAACnC,gBAAA,CAAAoC,eAAe,CAAC;EAClDQ,OAAO,CAACvB,QAAQ,EAAEC,EAAE,CAAC;EACrB,OAAOvB,KAAK,CAACiD,WAAW,CAAC,MAAK;IAC5B3B,QAAQ,CAACiC,OAAO,CAAChC,EAAE,CAAC;EACtB,CAAC,EAAE,CAACD,QAAQ,EAAEC,EAAE,CAAC,CAAC;AACpB,CAAC;AAED;;;;AAAA5C,OAAA,CAAAO,YAAA,GAAAA,YAAA;AAIO,MAAMM,KAAK,GAChB+B,EAAqB,IAC+C;EACpE,MAAMD,QAAQ,GAAGtB,KAAK,CAACoC,UAAU,CAACnC,gBAAA,CAAAoC,eAAe,CAAC;EAClD,OAAO,CACLL,QAAQ,CAACV,QAAQ,EAAEC,EAAE,CAAC,EACtByB,KAAK,CAAC1B,QAAQ,EAAEC,EAAE,CAAC,CACX;AACZ,CAAC;AAAA5C,OAAA,CAAAa,KAAA,GAAAA,KAAA;AAED,MAAMgE,YAAY,gBAAG,IAAAzD,YAAA,CAAAqB,WAAW,EAC9B,kCAAkC,EAClC,OAAO;EACLkC,gBAAgB,EAAE,IAAIG,GAAG,EAA6B;EACtD7C,OAAO,EAAE,IAAI6C,GAAG;CACjB,CAAC,CACH;AAED,SAASC,WAAWA,CAClBpC,QAA2B,EAC3BC,EAA8B,EAC9B+B,gBAAyB;EAEzB,MAAMV,GAAG,GAAGU,gBAAgB,GAAGE,YAAY,CAACF,gBAAgB,GAAGE,YAAY,CAAC5C,OAAO;EACnF,IAAI+C,OAAO,GAAGf,GAAG,CAAC9B,GAAG,CAACS,EAAE,CAAC;EACzB,IAAIoC,OAAO,KAAKlC,SAAS,EAAE;IACzB,OAAOkC,OAAO;EAChB;EACAA,OAAO,GAAG,IAAIC,OAAO,CAAQC,OAAO,IAAI;IACtC,MAAMC,OAAO,GAAGxC,QAAQ,CAACM,SAAS,CAACL,EAAE,EAAGwC,MAAM,IAAI;MAChD,IAAIA,MAAM,CAACC,IAAI,KAAK,SAAS,IAAKV,gBAAgB,IAAIS,MAAM,CAACE,OAAQ,EAAE;QACrE;MACF;MACAC,UAAU,CAACJ,OAAO,EAAE,IAAI,CAAC;MACzBD,OAAO,EAAE;MACTjB,GAAG,CAACuB,MAAM,CAAC5C,EAAE,CAAC;IAChB,CAAC,CAAC;EACJ,CAAC,CAAC;EACFqB,GAAG,CAAC7B,GAAG,CAACQ,EAAE,EAAEoC,OAAO,CAAC;EACpB,OAAOA,OAAO;AAChB;AAEA,SAASS,iBAAiBA,CACxB9C,QAA2B,EAC3BC,EAA8B,EAC9B+B,gBAAyB;EAEzB,MAAM1E,KAAK,GAAGoD,QAAQ,CAACV,QAAQ,EAAEC,EAAE,CAAC;EACpC,IAAI3C,KAAK,CAACoF,IAAI,KAAK,SAAS,IAAKV,gBAAgB,IAAI1E,KAAK,CAACqF,OAAQ,EAAE;IACnE,MAAMP,WAAW,CAACpC,QAAQ,EAAEC,EAAE,EAAE+B,gBAAgB,CAAC;EACnD;EACA,OAAO1E,KAAK;AACd;AAEA;;;;AAIO,MAAME,aAAa,GAAGA,CAC3ByC,EAA8B,EAC9B2B,OAGC,KACsF;EACvF,MAAM5B,QAAQ,GAAGtB,KAAK,CAACoC,UAAU,CAACnC,gBAAA,CAAAoC,eAAe,CAAC;EAClD,MAAM0B,MAAM,GAAGK,iBAAiB,CAAC9C,QAAQ,EAAEC,EAAE,EAAE2B,OAAO,EAAEI,gBAAgB,IAAI,KAAK,CAAC;EAClF,IAAIS,MAAM,CAACC,IAAI,KAAK,SAAS,IAAI,CAACd,OAAO,EAAEmB,cAAc,EAAE;IACzD,MAAMvE,KAAK,CAACwE,MAAM,CAACP,MAAM,CAACQ,KAAK,CAAC;EAClC;EACA,OAAOR,MAAa;AACtB,CAAC;AAED;;;;AAAApF,OAAA,CAAAG,aAAA,GAAAA,aAAA;AAIO,MAAMC,cAAc,GAAGA,CAC5BwC,EAAY,EACZb,CAAiB,EACjBwC,OAA0C,KAClC;EACR,MAAM5B,QAAQ,GAAGtB,KAAK,CAACoC,UAAU,CAACnC,gBAAA,CAAAoC,eAAe,CAAC;EAClDrC,KAAK,CAAC8C,SAAS,CACb,MAAMxB,QAAQ,CAACM,SAAS,CAACL,EAAE,EAAEb,CAAC,EAAEwC,OAAO,CAAC,EACxC,CAAC5B,QAAQ,EAAEC,EAAE,EAAEb,CAAC,EAAEwC,OAAO,EAAEsB,SAAS,CAAC,CACtC;AACH,CAAC;AAED;;;;AAAA7F,OAAA,CAAAI,cAAA,GAAAA,cAAA;AAIO,MAAMM,QAAQ,GAAOoF,GAAyB,IAAO;EAC1D,MAAM,GAAGhC,QAAQ,CAAC,GAAGzC,KAAK,CAAC0E,QAAQ,CAACD,GAAG,CAAC7F,KAAK,CAAC;EAC9CoB,KAAK,CAAC8C,SAAS,CAAC,MAAM2B,GAAG,CAAC7C,SAAS,CAACa,QAAQ,CAAC,EAAE,CAACgC,GAAG,CAAC,CAAC;EACrD,OAAOA,GAAG,CAAC7F,KAAK;AAClB,CAAC;AAED;;;;AAAAD,OAAA,CAAAU,QAAA,GAAAA,QAAA;AAIO,MAAMD,YAAY,GAAGA,CAAuBqF,GAAmB,EAAEE,IAAO,KAC7E3E,KAAK,CAAC2C,OAAO,CAAC,MAAM8B,GAAG,CAACE,IAAI,CAACA,IAAI,CAAC,EAAE,CAACF,GAAG,EAAEE,IAAI,CAAC,CAAC;AAElD;;;;AAAAhG,OAAA,CAAAS,YAAA,GAAAA,YAAA;AAIO,MAAMD,iBAAiB,GAAGA,CAAuBsF,GAAmB,EAAEE,IAAO,KAClFtF,QAAQ,CAACD,YAAY,CAACqF,GAAG,EAAEE,IAAI,CAAC,CAAC;AAAAhG,OAAA,CAAAQ,iBAAA,GAAAA,iBAAA","ignoreList":[]}
1
+ {"version":3,"file":"Hooks.js","names":["Object","defineProperty","exports","value","useRxValue","useRxSuspense","useRxSubscribe","useRxSet","useRxRefresh","useRxRefPropValue","useRxRefProp","useRxRef","useRxMount","useRxInitialValues","useRx","Registry","_interopRequireWildcard","require","Rx","_effect","Cause","Exit","_GlobalValue","React","_RegistryContext","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","getOwnPropertyDescriptor","storeRegistry","globalValue","makeStore","registry","rx","stores","undefined","store","newStore","subscribe","snapshot","getServerSnapshot","getServerValue","useStore","useSyncExternalStore","initialValuesSet","initialValues","useContext","RegistryContext","WeakSet","add","ensureNode","setValue","rxB","useMemo","map","mountRx","useEffect","mount","setRx","options","mode","useCallback","opts","promise","Effect","runPromiseExit","getResult","suspendOnWaiting","then","flattenExit","exit","isSuccess","squash","cause","refresh","rxPromiseMap","Map","rxToPromise","Promise","resolve","dispose","result","_tag","waiting","setTimeout","delete","rxResultOrSuspend","includeFailure","immediate","ref","useState","prop"],"sources":["../../src/Hooks.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,7 +1,7 @@
1
1
  import type * as Result from "@effect-rx/rx/Result";
2
2
  import * as Rx from "@effect-rx/rx/Rx";
3
3
  import type * as RxRef from "@effect-rx/rx/RxRef";
4
- import type * as Exit from "effect/Exit";
4
+ import * as Exit from "effect/Exit";
5
5
  /**
6
6
  * @since 1.0.0
7
7
  * @category hooks
@@ -24,14 +24,13 @@ export declare const useRxMount: <A>(rx: Rx.Rx<A>) => void;
24
24
  * @since 1.0.0
25
25
  * @category hooks
26
26
  */
27
- export declare const useRxSet: <R, W>(rx: Rx.Writable<R, W>) => (_: W | ((_: R) => W)) => void;
28
- /**
29
- * @since 1.0.0
30
- * @category hooks
31
- */
32
- export declare const useRxSetPromise: <E, A, W>(rx: Rx.Writable<Result.Result<A, E>, W>) => (_: W, options?: {
27
+ export declare const useRxSet: <R, W, Mode extends "value" | "promise" | "promiseExit" = never>(rx: Rx.Writable<R, W>, options?: {
28
+ readonly mode?: ([R] extends [Result.Result<any, any>] ? Mode : "value") | undefined;
29
+ }) => "promise" extends Mode ? ((value: W, options?: {
33
30
  readonly signal?: AbortSignal | undefined;
34
- } | undefined) => Promise<Exit.Exit<A, E>>;
31
+ } | undefined) => Promise<Result.Result.InferA<R>>) : "promiseExit" extends Mode ? ((value: W, options?: {
32
+ readonly signal?: AbortSignal | undefined;
33
+ } | undefined) => Promise<Exit.Exit<Result.Result.InferA<R>, Result.Result.InferE<R>>>) : ((value: W | ((value: R) => W)) => void);
35
34
  /**
36
35
  * @since 1.0.0
37
36
  * @category hooks
@@ -41,7 +40,13 @@ export declare const useRxRefresh: <A>(rx: Rx.Rx<A>) => () => void;
41
40
  * @since 1.0.0
42
41
  * @category hooks
43
42
  */
44
- export declare const useRx: <R, W>(rx: Rx.Writable<R, W>) => readonly [value: R, setOrUpdate: (_: W | ((_: R) => W)) => void];
43
+ export declare const useRx: <R, W, const Mode extends "value" | "promise" | "promiseExit" = "value">(rx: Rx.Writable<R, W>, options?: {
44
+ readonly mode?: ([R] extends [Result.Result<any, any>] ? Mode : "value") | undefined;
45
+ }) => readonly [value: R, write: "promise" extends Mode ? ((value: W, options?: {
46
+ readonly signal?: AbortSignal | undefined;
47
+ } | undefined) => Promise<Result.Result.InferA<R>>) : "promiseExit" extends Mode ? ((value: W, options?: {
48
+ readonly signal?: AbortSignal | undefined;
49
+ } | undefined) => Promise<Exit.Exit<Result.Result.InferA<R>, Result.Result.InferE<R>>>) : ((value: W | ((value: R) => W)) => void)];
45
50
  /**
46
51
  * @since 1.0.0
47
52
  * @category hooks
@@ -1 +1 @@
1
- {"version":3,"file":"Hooks.d.ts","sourceRoot":"","sources":["../../src/Hooks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Hooks.d.ts","sourceRoot":"","sources":["../../src/Hooks.ts"],"names":[],"mappings":"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"}
package/dist/esm/Hooks.js CHANGED
@@ -7,6 +7,7 @@ import * as Registry from "@effect-rx/rx/Registry";
7
7
  import * as Rx from "@effect-rx/rx/Rx";
8
8
  import { Effect } from "effect";
9
9
  import * as Cause from "effect/Cause";
10
+ import * as Exit from "effect/Exit";
10
11
  import { globalValue } from "effect/GlobalValue";
11
12
  import * as React from "react";
12
13
  import { RegistryContext } from "./RegistryContext.js";
@@ -73,46 +74,40 @@ export const useRxValue = (rx, f) => {
73
74
  function mountRx(registry, rx) {
74
75
  React.useEffect(() => registry.mount(rx), [rx, registry]);
75
76
  }
76
- function setRx(registry, rx) {
77
- return React.useCallback(value => {
78
- if (typeof value === "function") {
79
- registry.set(rx, value(registry.get(rx)));
80
- return;
81
- } else {
77
+ function setRx(registry, rx, options) {
78
+ if (options?.mode === "promise" || options?.mode === "promiseExit") {
79
+ return React.useCallback((value, opts) => {
82
80
  registry.set(rx, value);
83
- }
81
+ const promise = Effect.runPromiseExit(Registry.getResult(registry, rx, {
82
+ suspendOnWaiting: true
83
+ }), opts);
84
+ return options.mode === "promise" ? promise.then(flattenExit) : promise;
85
+ }, [registry, rx, options.mode]);
86
+ }
87
+ return React.useCallback(value => {
88
+ registry.set(rx, typeof value === "function" ? value(registry.get(rx)) : value);
84
89
  }, [registry, rx]);
85
90
  }
86
- /**
87
- * @since 1.0.0
88
- * @category hooks
89
- */
90
- export const useRxMount = rx => {
91
- const registry = React.useContext(RegistryContext);
92
- mountRx(registry, rx);
91
+ const flattenExit = exit => {
92
+ if (Exit.isSuccess(exit)) return exit.value;
93
+ throw Cause.squash(exit.cause);
93
94
  };
94
95
  /**
95
96
  * @since 1.0.0
96
97
  * @category hooks
97
98
  */
98
- export const useRxSet = rx => {
99
+ export const useRxMount = rx => {
99
100
  const registry = React.useContext(RegistryContext);
100
101
  mountRx(registry, rx);
101
- return setRx(registry, rx);
102
102
  };
103
103
  /**
104
104
  * @since 1.0.0
105
105
  * @category hooks
106
106
  */
107
- export const useRxSetPromise = rx => {
107
+ export const useRxSet = (rx, options) => {
108
108
  const registry = React.useContext(RegistryContext);
109
109
  mountRx(registry, rx);
110
- return React.useCallback((value, options) => {
111
- registry.set(rx, value);
112
- return Effect.runPromiseExit(Registry.getResult(registry, rx, {
113
- suspendOnWaiting: true
114
- }), options);
115
- }, [registry, rx]);
110
+ return setRx(registry, rx, options);
116
111
  };
117
112
  /**
118
113
  * @since 1.0.0
@@ -129,9 +124,9 @@ export const useRxRefresh = rx => {
129
124
  * @since 1.0.0
130
125
  * @category hooks
131
126
  */
132
- export const useRx = rx => {
127
+ export const useRx = (rx, options) => {
133
128
  const registry = React.useContext(RegistryContext);
134
- return [useStore(registry, rx), setRx(registry, rx)];
129
+ return [useStore(registry, rx), setRx(registry, rx, options)];
135
130
  };
136
131
  const rxPromiseMap = /*#__PURE__*/globalValue("@effect-rx/rx-react/rxPromiseMap", () => ({
137
132
  suspendOnWaiting: new Map(),
@@ -1 +1 @@
1
- {"version":3,"file":"Hooks.js","names":["Registry","Rx","Effect","Cause","globalValue","React","RegistryContext","storeRegistry","WeakMap","makeStore","registry","rx","stores","get","undefined","set","store","newStore","subscribe","f","snapshot","getServerSnapshot","getServerValue","useStore","useSyncExternalStore","initialValuesSet","useRxInitialValues","initialValues","useContext","WeakSet","value","has","add","ensureNode","setValue","useRxValue","rxB","useMemo","map","mountRx","useEffect","mount","setRx","useCallback","useRxMount","useRxSet","useRxSetPromise","options","runPromiseExit","getResult","suspendOnWaiting","useRxRefresh","refresh","useRx","rxPromiseMap","Map","default","rxToPromise","promise","Promise","resolve","dispose","result","_tag","waiting","setTimeout","delete","rxResultOrSuspend","useRxSuspense","includeFailure","squash","cause","useRxSubscribe","immediate","useRxRef","ref","useState","useRxRefProp","prop","useRxRefPropValue"],"sources":["../../src/Hooks.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,YAAY;;AACZ,OAAO,KAAKA,QAAQ,MAAM,wBAAwB;AAElD,OAAO,KAAKC,EAAE,MAAM,kBAAkB;AAEtC,SAASC,MAAM,QAAQ,QAAQ;AAC/B,OAAO,KAAKC,KAAK,MAAM,cAAc;AAErC,SAASC,WAAW,QAAQ,oBAAoB;AAChD,OAAO,KAAKC,KAAK,MAAM,OAAO;AAC9B,SAASC,eAAe,QAAQ,sBAAsB;AAQtD,MAAMC,aAAa,gBAAGH,WAAW,CAC/B,mCAAmC,EACnC,MAAM,IAAII,OAAO,EAAwD,CAC1E;AAED,SAASC,SAASA,CAAIC,QAA2B,EAAEC,EAAY;EAC7D,IAAIC,MAAM,GAAGL,aAAa,CAACM,GAAG,CAACH,QAAQ,CAAC;EACxC,IAAIE,MAAM,KAAKE,SAAS,EAAE;IACxBF,MAAM,GAAG,IAAIJ,OAAO,EAAE;IACtBD,aAAa,CAACQ,GAAG,CAACL,QAAQ,EAAEE,MAAM,CAAC;EACrC;EACA,MAAMI,KAAK,GAAGJ,MAAM,CAACC,GAAG,CAACF,EAAE,CAAC;EAC5B,IAAIK,KAAK,KAAKF,SAAS,EAAE;IACvB,OAAOE,KAAK;EACd;EACA,MAAMC,QAAQ,GAAe;IAC3BC,SAASA,CAACC,CAAC;MACT,OAAOT,QAAQ,CAACQ,SAAS,CAACP,EAAE,EAAEQ,CAAC,CAAC;IAClC,CAAC;IACDC,QAAQA,CAAA;MACN,OAAOV,QAAQ,CAACG,GAAG,CAACF,EAAE,CAAC;IACzB,CAAC;IACDU,iBAAiBA,CAAA;MACf,OAAOpB,EAAE,CAACqB,cAAc,CAACX,EAAE,EAAED,QAAQ,CAAC;IACxC;GACD;EACDE,MAAM,CAACG,GAAG,CAACJ,EAAE,EAAEM,QAAQ,CAAC;EACxB,OAAOA,QAAQ;AACjB;AAEA,SAASM,QAAQA,CAAIb,QAA2B,EAAEC,EAAY;EAC5D,MAAMK,KAAK,GAAGP,SAAS,CAACC,QAAQ,EAAEC,EAAE,CAAC;EAErC,OAAON,KAAK,CAACmB,oBAAoB,CAACR,KAAK,CAACE,SAAS,EAAEF,KAAK,CAACI,QAAQ,EAAEJ,KAAK,CAACK,iBAAiB,CAAC;AAC7F;AAEA,MAAMI,gBAAgB,gBAAGrB,WAAW,CAClC,sCAAsC,EACtC,MAAM,IAAII,OAAO,EAA0C,CAC5D;AAED;;;;AAIA,OAAO,MAAMkB,kBAAkB,GAAIC,aAAmD,IAAU;EAC9F,MAAMjB,QAAQ,GAAGL,KAAK,CAACuB,UAAU,CAACtB,eAAe,CAAC;EAClD,IAAIS,GAAG,GAAGU,gBAAgB,CAACZ,GAAG,CAACH,QAAQ,CAAC;EACxC,IAAIK,GAAG,KAAKD,SAAS,EAAE;IACrBC,GAAG,GAAG,IAAIc,OAAO,EAAE;IACnBJ,gBAAgB,CAACV,GAAG,CAACL,QAAQ,EAAEK,GAAG,CAAC;EACrC;EACA,KAAK,MAAM,CAACJ,EAAE,EAAEmB,KAAK,CAAC,IAAIH,aAAa,EAAE;IACvC,IAAI,CAACZ,GAAG,CAACgB,GAAG,CAACpB,EAAE,CAAC,EAAE;MAChBI,GAAG,CAACiB,GAAG,CAACrB,EAAE,CAAC;MACTD,QAAgB,CAACuB,UAAU,CAACtB,EAAE,CAAC,CAACuB,QAAQ,CAACJ,KAAK,CAAC;IACnD;EACF;AACF,CAAC;AAED;;;;AAIA,OAAO,MAAMK,UAAU,GAGnBA,CAAIxB,EAAY,EAAEQ,CAAe,KAAO;EAC1C,MAAMT,QAAQ,GAAGL,KAAK,CAACuB,UAAU,CAACtB,eAAe,CAAC;EAClD,IAAIa,CAAC,EAAE;IACL,MAAMiB,GAAG,GAAG/B,KAAK,CAACgC,OAAO,CAAC,MAAMpC,EAAE,CAACqC,GAAG,CAAC3B,EAAE,EAAEQ,CAAC,CAAC,EAAE,CAACR,EAAE,EAAEQ,CAAC,CAAC,CAAC;IACvD,OAAOI,QAAQ,CAACb,QAAQ,EAAE0B,GAAG,CAAC;EAChC;EACA,OAAOb,QAAQ,CAACb,QAAQ,EAAEC,EAAE,CAAC;AAC/B,CAAC;AAED,SAAS4B,OAAOA,CAAI7B,QAA2B,EAAEC,EAAY;EAC3DN,KAAK,CAACmC,SAAS,CAAC,MAAM9B,QAAQ,CAAC+B,KAAK,CAAC9B,EAAE,CAAC,EAAE,CAACA,EAAE,EAAED,QAAQ,CAAC,CAAC;AAC3D;AAEA,SAASgC,KAAKA,CAAOhC,QAA2B,EAAEC,EAAqB;EACrE,OAAON,KAAK,CAACsC,WAAW,CAAEb,KAAK,IAAI;IACjC,IAAI,OAAOA,KAAK,KAAK,UAAU,EAAE;MAC/BpB,QAAQ,CAACK,GAAG,CAACJ,EAAE,EAAGmB,KAAa,CAACpB,QAAQ,CAACG,GAAG,CAACF,EAAE,CAAC,CAAC,CAAC;MAClD;IACF,CAAC,MAAM;MACLD,QAAQ,CAACK,GAAG,CAACJ,EAAE,EAAEmB,KAAK,CAAC;IACzB;EACF,CAAC,EAAE,CAACpB,QAAQ,EAAEC,EAAE,CAAC,CAAC;AACpB;AAEA;;;;AAIA,OAAO,MAAMiC,UAAU,GAAOjC,EAAY,IAAU;EAClD,MAAMD,QAAQ,GAAGL,KAAK,CAACuB,UAAU,CAACtB,eAAe,CAAC;EAClDiC,OAAO,CAAC7B,QAAQ,EAAEC,EAAE,CAAC;AACvB,CAAC;AAED;;;;AAIA,OAAO,MAAMkC,QAAQ,GAAUlC,EAAqB,IAAoC;EACtF,MAAMD,QAAQ,GAAGL,KAAK,CAACuB,UAAU,CAACtB,eAAe,CAAC;EAClDiC,OAAO,CAAC7B,QAAQ,EAAEC,EAAE,CAAC;EACrB,OAAO+B,KAAK,CAAChC,QAAQ,EAAEC,EAAE,CAAC;AAC5B,CAAC;AAED;;;;AAIA,OAAO,MAAMmC,eAAe,GAC1BnC,EAAuC,IAMT;EAC9B,MAAMD,QAAQ,GAAGL,KAAK,CAACuB,UAAU,CAACtB,eAAe,CAAC;EAClDiC,OAAO,CAAC7B,QAAQ,EAAEC,EAAE,CAAC;EACrB,OAAON,KAAK,CAACsC,WAAW,CAAC,CAACb,KAAK,EAAEiB,OAAO,KAAI;IAC1CrC,QAAQ,CAACK,GAAG,CAACJ,EAAE,EAAEmB,KAAK,CAAC;IACvB,OAAO5B,MAAM,CAAC8C,cAAc,CAAChD,QAAQ,CAACiD,SAAS,CAACvC,QAAQ,EAAEC,EAAE,EAAE;MAAEuC,gBAAgB,EAAE;IAAI,CAAE,CAAC,EAAEH,OAAO,CAAC;EACrG,CAAC,EAAE,CAACrC,QAAQ,EAAEC,EAAE,CAAC,CAAC;AACpB,CAAC;AAED;;;;AAIA,OAAO,MAAMwC,YAAY,GAAOxC,EAAY,IAAgB;EAC1D,MAAMD,QAAQ,GAAGL,KAAK,CAACuB,UAAU,CAACtB,eAAe,CAAC;EAClDiC,OAAO,CAAC7B,QAAQ,EAAEC,EAAE,CAAC;EACrB,OAAON,KAAK,CAACsC,WAAW,CAAC,MAAK;IAC5BjC,QAAQ,CAAC0C,OAAO,CAACzC,EAAE,CAAC;EACtB,CAAC,EAAE,CAACD,QAAQ,EAAEC,EAAE,CAAC,CAAC;AACpB,CAAC;AAED;;;;AAIA,OAAO,MAAM0C,KAAK,GAChB1C,EAAqB,IAC+C;EACpE,MAAMD,QAAQ,GAAGL,KAAK,CAACuB,UAAU,CAACtB,eAAe,CAAC;EAClD,OAAO,CACLiB,QAAQ,CAACb,QAAQ,EAAEC,EAAE,CAAC,EACtB+B,KAAK,CAAChC,QAAQ,EAAEC,EAAE,CAAC,CACX;AACZ,CAAC;AAED,MAAM2C,YAAY,gBAAGlD,WAAW,CAC9B,kCAAkC,EAClC,OAAO;EACL8C,gBAAgB,EAAE,IAAIK,GAAG,EAA6B;EACtDC,OAAO,EAAE,IAAID,GAAG;CACjB,CAAC,CACH;AAED,SAASE,WAAWA,CAClB/C,QAA2B,EAC3BC,EAA8B,EAC9BuC,gBAAyB;EAEzB,MAAMZ,GAAG,GAAGY,gBAAgB,GAAGI,YAAY,CAACJ,gBAAgB,GAAGI,YAAY,CAACE,OAAO;EACnF,IAAIE,OAAO,GAAGpB,GAAG,CAACzB,GAAG,CAACF,EAAE,CAAC;EACzB,IAAI+C,OAAO,KAAK5C,SAAS,EAAE;IACzB,OAAO4C,OAAO;EAChB;EACAA,OAAO,GAAG,IAAIC,OAAO,CAAQC,OAAO,IAAI;IACtC,MAAMC,OAAO,GAAGnD,QAAQ,CAACQ,SAAS,CAACP,EAAE,EAAGmD,MAAM,IAAI;MAChD,IAAIA,MAAM,CAACC,IAAI,KAAK,SAAS,IAAKb,gBAAgB,IAAIY,MAAM,CAACE,OAAQ,EAAE;QACrE;MACF;MACAC,UAAU,CAACJ,OAAO,EAAE,IAAI,CAAC;MACzBD,OAAO,EAAE;MACTtB,GAAG,CAAC4B,MAAM,CAACvD,EAAE,CAAC;IAChB,CAAC,CAAC;EACJ,CAAC,CAAC;EACF2B,GAAG,CAACvB,GAAG,CAACJ,EAAE,EAAE+C,OAAO,CAAC;EACpB,OAAOA,OAAO;AAChB;AAEA,SAASS,iBAAiBA,CACxBzD,QAA2B,EAC3BC,EAA8B,EAC9BuC,gBAAyB;EAEzB,MAAMpB,KAAK,GAAGP,QAAQ,CAACb,QAAQ,EAAEC,EAAE,CAAC;EACpC,IAAImB,KAAK,CAACiC,IAAI,KAAK,SAAS,IAAKb,gBAAgB,IAAIpB,KAAK,CAACkC,OAAQ,EAAE;IACnE,MAAMP,WAAW,CAAC/C,QAAQ,EAAEC,EAAE,EAAEuC,gBAAgB,CAAC;EACnD;EACA,OAAOpB,KAAK;AACd;AAEA;;;;AAIA,OAAO,MAAMsC,aAAa,GAAGA,CAC3BzD,EAA8B,EAC9BoC,OAGC,KACsF;EACvF,MAAMrC,QAAQ,GAAGL,KAAK,CAACuB,UAAU,CAACtB,eAAe,CAAC;EAClD,MAAMwD,MAAM,GAAGK,iBAAiB,CAACzD,QAAQ,EAAEC,EAAE,EAAEoC,OAAO,EAAEG,gBAAgB,IAAI,KAAK,CAAC;EAClF,IAAIY,MAAM,CAACC,IAAI,KAAK,SAAS,IAAI,CAAChB,OAAO,EAAEsB,cAAc,EAAE;IACzD,MAAMlE,KAAK,CAACmE,MAAM,CAACR,MAAM,CAACS,KAAK,CAAC;EAClC;EACA,OAAOT,MAAa;AACtB,CAAC;AAED;;;;AAIA,OAAO,MAAMU,cAAc,GAAGA,CAC5B7D,EAAY,EACZQ,CAAiB,EACjB4B,OAA0C,KAClC;EACR,MAAMrC,QAAQ,GAAGL,KAAK,CAACuB,UAAU,CAACtB,eAAe,CAAC;EAClDD,KAAK,CAACmC,SAAS,CACb,MAAM9B,QAAQ,CAACQ,SAAS,CAACP,EAAE,EAAEQ,CAAC,EAAE4B,OAAO,CAAC,EACxC,CAACrC,QAAQ,EAAEC,EAAE,EAAEQ,CAAC,EAAE4B,OAAO,EAAE0B,SAAS,CAAC,CACtC;AACH,CAAC;AAED;;;;AAIA,OAAO,MAAMC,QAAQ,GAAOC,GAAyB,IAAO;EAC1D,MAAM,GAAGzC,QAAQ,CAAC,GAAG7B,KAAK,CAACuE,QAAQ,CAACD,GAAG,CAAC7C,KAAK,CAAC;EAC9CzB,KAAK,CAACmC,SAAS,CAAC,MAAMmC,GAAG,CAACzD,SAAS,CAACgB,QAAQ,CAAC,EAAE,CAACyC,GAAG,CAAC,CAAC;EACrD,OAAOA,GAAG,CAAC7C,KAAK;AAClB,CAAC;AAED;;;;AAIA,OAAO,MAAM+C,YAAY,GAAGA,CAAuBF,GAAmB,EAAEG,IAAO,KAC7EzE,KAAK,CAACgC,OAAO,CAAC,MAAMsC,GAAG,CAACG,IAAI,CAACA,IAAI,CAAC,EAAE,CAACH,GAAG,EAAEG,IAAI,CAAC,CAAC;AAElD;;;;AAIA,OAAO,MAAMC,iBAAiB,GAAGA,CAAuBJ,GAAmB,EAAEG,IAAO,KAClFJ,QAAQ,CAACG,YAAY,CAACF,GAAG,EAAEG,IAAI,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"Hooks.js","names":["Registry","Rx","Effect","Cause","Exit","globalValue","React","RegistryContext","storeRegistry","WeakMap","makeStore","registry","rx","stores","get","undefined","set","store","newStore","subscribe","f","snapshot","getServerSnapshot","getServerValue","useStore","useSyncExternalStore","initialValuesSet","useRxInitialValues","initialValues","useContext","WeakSet","value","has","add","ensureNode","setValue","useRxValue","rxB","useMemo","map","mountRx","useEffect","mount","setRx","options","mode","useCallback","opts","promise","runPromiseExit","getResult","suspendOnWaiting","then","flattenExit","exit","isSuccess","squash","cause","useRxMount","useRxSet","useRxRefresh","refresh","useRx","rxPromiseMap","Map","default","rxToPromise","Promise","resolve","dispose","result","_tag","waiting","setTimeout","delete","rxResultOrSuspend","useRxSuspense","includeFailure","useRxSubscribe","immediate","useRxRef","ref","useState","useRxRefProp","prop","useRxRefPropValue"],"sources":["../../src/Hooks.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@effect-rx/rx-react",
3
- "version": "0.41.1",
3
+ "version": "0.42.0",
4
4
  "description": "Reactive toolkit for Effect",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -11,7 +11,7 @@
11
11
  "author": "Effect contributors",
12
12
  "homepage": "https://github.com/effect-ts/rx",
13
13
  "dependencies": {
14
- "@effect-rx/rx": "^0.48.3"
14
+ "@effect-rx/rx": "^0.48.4"
15
15
  },
16
16
  "peerDependencies": {
17
17
  "effect": "^3.17",
package/src/Hooks.ts CHANGED
@@ -2,13 +2,14 @@
2
2
  * @since 1.0.0
3
3
  */
4
4
  "use client"
5
+
5
6
  import * as Registry from "@effect-rx/rx/Registry"
6
7
  import type * as Result from "@effect-rx/rx/Result"
7
8
  import * as Rx from "@effect-rx/rx/Rx"
8
9
  import type * as RxRef from "@effect-rx/rx/RxRef"
9
10
  import { Effect } from "effect"
10
11
  import * as Cause from "effect/Cause"
11
- import type * as Exit from "effect/Exit"
12
+ import * as Exit from "effect/Exit"
12
13
  import { globalValue } from "effect/GlobalValue"
13
14
  import * as React from "react"
14
15
  import { RegistryContext } from "./RegistryContext.js"
@@ -99,54 +100,93 @@ function mountRx<A>(registry: Registry.Registry, rx: Rx.Rx<A>): void {
99
100
  React.useEffect(() => registry.mount(rx), [rx, registry])
100
101
  }
101
102
 
102
- function setRx<R, W>(registry: Registry.Registry, rx: Rx.Writable<R, W>): (_: W | ((_: R) => W)) => void {
103
- return React.useCallback((value) => {
104
- if (typeof value === "function") {
105
- registry.set(rx, (value as any)(registry.get(rx)))
106
- return
107
- } else {
103
+ function setRx<R, W, Mode extends "value" | "promise" | "promiseExit" = "value">(
104
+ registry: Registry.Registry,
105
+ rx: Rx.Writable<R, W>,
106
+ options?: {
107
+ readonly mode?: ([R] extends [Result.Result<any, any>] ? Mode : "value") | undefined
108
+ }
109
+ ): "promise" extends Mode ? (
110
+ (
111
+ value: W,
112
+ options?: {
113
+ readonly signal?: AbortSignal | undefined
114
+ } | undefined
115
+ ) => Promise<Result.Result.InferA<R>>
116
+ ) :
117
+ "promiseExit" extends Mode ? (
118
+ (
119
+ value: W,
120
+ options?: {
121
+ readonly signal?: AbortSignal | undefined
122
+ } | undefined
123
+ ) => Promise<Exit.Exit<Result.Result.InferA<R>, Result.Result.InferE<R>>>
124
+ ) :
125
+ ((value: W | ((value: R) => W)) => void)
126
+ {
127
+ if (options?.mode === "promise" || options?.mode === "promiseExit") {
128
+ return React.useCallback((value: W, opts?: any) => {
108
129
  registry.set(rx, value)
109
- }
110
- }, [registry, rx])
130
+ const promise = Effect.runPromiseExit(
131
+ Registry.getResult(registry, rx as Rx.Rx<Result.Result<any, any>>, { suspendOnWaiting: true }),
132
+ opts
133
+ )
134
+ return options!.mode === "promise" ? promise.then(flattenExit) : promise
135
+ }, [registry, rx, options.mode]) as any
136
+ }
137
+ return React.useCallback((value: W | ((value: R) => W)) => {
138
+ registry.set(rx, typeof value === "function" ? (value as any)(registry.get(rx)) : value)
139
+ }, [registry, rx]) as any
111
140
  }
112
141
 
113
- /**
114
- * @since 1.0.0
115
- * @category hooks
116
- */
117
- export const useRxMount = <A>(rx: Rx.Rx<A>): void => {
118
- const registry = React.useContext(RegistryContext)
119
- mountRx(registry, rx)
142
+ const flattenExit = <A, E>(exit: Exit.Exit<A, E>): A => {
143
+ if (Exit.isSuccess(exit)) return exit.value
144
+ throw Cause.squash(exit.cause)
120
145
  }
121
146
 
122
147
  /**
123
148
  * @since 1.0.0
124
149
  * @category hooks
125
150
  */
126
- export const useRxSet = <R, W>(rx: Rx.Writable<R, W>): (_: W | ((_: R) => W)) => void => {
151
+ export const useRxMount = <A>(rx: Rx.Rx<A>): void => {
127
152
  const registry = React.useContext(RegistryContext)
128
153
  mountRx(registry, rx)
129
- return setRx(registry, rx)
130
154
  }
131
155
 
132
156
  /**
133
157
  * @since 1.0.0
134
158
  * @category hooks
135
159
  */
136
- export const useRxSetPromise = <E, A, W>(
137
- rx: Rx.Writable<Result.Result<A, E>, W>
138
- ): (
139
- _: W,
160
+ export const useRxSet = <
161
+ R,
162
+ W,
163
+ Mode extends "value" | "promise" | "promiseExit" = never
164
+ >(
165
+ rx: Rx.Writable<R, W>,
140
166
  options?: {
141
- readonly signal?: AbortSignal | undefined
142
- } | undefined
143
- ) => Promise<Exit.Exit<A, E>> => {
167
+ readonly mode?: ([R] extends [Result.Result<any, any>] ? Mode : "value") | undefined
168
+ }
169
+ ): "promise" extends Mode ? (
170
+ (
171
+ value: W,
172
+ options?: {
173
+ readonly signal?: AbortSignal | undefined
174
+ } | undefined
175
+ ) => Promise<Result.Result.InferA<R>>
176
+ ) :
177
+ "promiseExit" extends Mode ? (
178
+ (
179
+ value: W,
180
+ options?: {
181
+ readonly signal?: AbortSignal | undefined
182
+ } | undefined
183
+ ) => Promise<Exit.Exit<Result.Result.InferA<R>, Result.Result.InferE<R>>>
184
+ ) :
185
+ ((value: W | ((value: R) => W)) => void) =>
186
+ {
144
187
  const registry = React.useContext(RegistryContext)
145
188
  mountRx(registry, rx)
146
- return React.useCallback((value, options) => {
147
- registry.set(rx, value)
148
- return Effect.runPromiseExit(Registry.getResult(registry, rx, { suspendOnWaiting: true }), options)
149
- }, [registry, rx])
189
+ return setRx(registry, rx, options)
150
190
  }
151
191
 
152
192
  /**
@@ -165,13 +205,35 @@ export const useRxRefresh = <A>(rx: Rx.Rx<A>): () => void => {
165
205
  * @since 1.0.0
166
206
  * @category hooks
167
207
  */
168
- export const useRx = <R, W>(
169
- rx: Rx.Writable<R, W>
170
- ): readonly [value: R, setOrUpdate: (_: W | ((_: R) => W)) => void] => {
208
+ export const useRx = <R, W, const Mode extends "value" | "promise" | "promiseExit" = "value">(
209
+ rx: Rx.Writable<R, W>,
210
+ options?: {
211
+ readonly mode?: ([R] extends [Result.Result<any, any>] ? Mode : "value") | undefined
212
+ }
213
+ ): readonly [
214
+ value: R,
215
+ write: "promise" extends Mode ? (
216
+ (
217
+ value: W,
218
+ options?: {
219
+ readonly signal?: AbortSignal | undefined
220
+ } | undefined
221
+ ) => Promise<Result.Result.InferA<R>>
222
+ ) :
223
+ "promiseExit" extends Mode ? (
224
+ (
225
+ value: W,
226
+ options?: {
227
+ readonly signal?: AbortSignal | undefined
228
+ } | undefined
229
+ ) => Promise<Exit.Exit<Result.Result.InferA<R>, Result.Result.InferE<R>>>
230
+ ) :
231
+ ((value: W | ((value: R) => W)) => void)
232
+ ] => {
171
233
  const registry = React.useContext(RegistryContext)
172
234
  return [
173
235
  useStore(registry, rx),
174
- setRx(registry, rx)
236
+ setRx(registry, rx, options)
175
237
  ] as const
176
238
  }
177
239