@effect-rx/rx-react 0.4.1 → 0.5.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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"../../../src","sources":["index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,QAAQ,MAAM,wBAAwB,CAAA;AAClD,OAAO,KAAK,MAAM,MAAM,sBAAsB,CAAA;AAC9C,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAA;AACtC,OAAO,KAAK,KAAK,KAAK,MAAM,qBAAqB,CAAA;AAEjD,OAAO,KAAK,KAAK,IAAI,MAAM,aAAa,CAAA;AAExC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B;;;GAGG;AACH,OAAO,KAAK,QAAQ,MAAM,wBAAwB,CAAA;AAClD;;;GAGG;AACH,OAAO,KAAK,MAAM,MAAM,sBAAsB,CAAA;AAC9C;;;GAGG;AACH,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAA;AACtC;;;GAGG;AACH,OAAO,KAAK,KAAK,MAAM,qBAAqB,CAAA;AAE5C;;;GAGG;AACH,eAAO,MAAM,eAAe,kCAA0D,CAAA;AAmCtF;;;GAGG;AACH,eAAO,MAAM,UAAU,EAAE;IACvB,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;IACpB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;CAQxC,CAAA;AAmDD;;;GAGG;AACH,eAAO,MAAM,UAAU,uBAAsB,IAG5C,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,QAAQ,6DAA4D,IAIhF,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe,0FAK3B,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,YAAY,wCAAuC,MAAM,IAMrE,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,KAAK,8FAE4C,IAAI,CAMjE,CAAA;AA2CD;;;GAGG;AACH,eAAO,MAAM,aAAa,mDAEd;IAAE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAAE;wBAE7B,OAAO;;CAwB5B,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,oBAAoB,mDAErB;IAAE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAAE;wBAE7B,OAAO;;CAW5B,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,iCAEZ,IAAI,YACP;IAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,KACzC,IAMF,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,QAAQ,qCAIpB,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * from "./declarations/src/index.js";
2
+ //# sourceMappingURL=effect-rx-rx-react.cjs.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"effect-rx-rx-react.cjs.d.mts","sourceRoot":"","sources":["./declarations/src/index.d.ts"],"names":[],"mappings":"AAAA"}
@@ -0,0 +1,2 @@
1
+ export * from "./declarations/src/index";
2
+ //# sourceMappingURL=effect-rx-rx-react.cjs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"effect-rx-rx-react.cjs.d.ts","sourceRoot":"","sources":["./declarations/src/index.d.ts"],"names":[],"mappings":"AAAA"}
@@ -0,0 +1,276 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var Registry = require('@effect-rx/rx/Registry');
6
+ var Result = require('@effect-rx/rx/Result');
7
+ var Rx = require('@effect-rx/rx/Rx');
8
+ var Cause = require('effect/Cause');
9
+ var GlobalValue = require('effect/GlobalValue');
10
+ var React = require('react');
11
+ var RxRef = require('@effect-rx/rx/RxRef');
12
+
13
+ function _interopNamespace(e) {
14
+ if (e && e.__esModule) return e;
15
+ var n = Object.create(null);
16
+ if (e) {
17
+ Object.keys(e).forEach(function (k) {
18
+ if (k !== 'default') {
19
+ var d = Object.getOwnPropertyDescriptor(e, k);
20
+ Object.defineProperty(n, k, d.get ? d : {
21
+ enumerable: true,
22
+ get: function () { return e[k]; }
23
+ });
24
+ }
25
+ });
26
+ }
27
+ n["default"] = e;
28
+ return Object.freeze(n);
29
+ }
30
+
31
+ var Registry__namespace = /*#__PURE__*/_interopNamespace(Registry);
32
+ var Result__namespace = /*#__PURE__*/_interopNamespace(Result);
33
+ var Rx__namespace = /*#__PURE__*/_interopNamespace(Rx);
34
+ var Cause__namespace = /*#__PURE__*/_interopNamespace(Cause);
35
+ var React__namespace = /*#__PURE__*/_interopNamespace(React);
36
+ var RxRef__namespace = /*#__PURE__*/_interopNamespace(RxRef);
37
+
38
+ /**
39
+ * @since 1.0.0
40
+ */
41
+
42
+ /**
43
+ * @since 1.0.0
44
+ * @category context
45
+ */
46
+ const RegistryContext = /*#__PURE__*/React__namespace.createContext( /*#__PURE__*/Registry__namespace.make());
47
+ const storeRegistry = /*#__PURE__*/GlobalValue.globalValue("@effect-rx/rx-react/storeRegistry", () => new WeakMap());
48
+ function makeStore(registry, rx) {
49
+ const stores = storeRegistry.get(registry) ?? storeRegistry.set(registry, new WeakMap()).get(registry);
50
+ const store = stores.get(rx);
51
+ if (store) {
52
+ return store;
53
+ }
54
+ const newStore = {
55
+ subscribe(f) {
56
+ return registry.subscribe(rx, f);
57
+ },
58
+ snapshot() {
59
+ return registry.get(rx);
60
+ }
61
+ };
62
+ stores.set(rx, newStore);
63
+ return newStore;
64
+ }
65
+ function useStore(registry, rx) {
66
+ const store = makeStore(registry, rx);
67
+ return React__namespace.useSyncExternalStore(store.subscribe, store.snapshot);
68
+ }
69
+
70
+ /**
71
+ * @since 1.0.0
72
+ * @category hooks
73
+ */
74
+ const useRxValue = (rx, f) => {
75
+ const registry = React__namespace.useContext(RegistryContext);
76
+ if (f) {
77
+ const rxB = React__namespace.useMemo(() => Rx__namespace.map(rx, f), [rx, f]);
78
+ return useStore(registry, rxB);
79
+ }
80
+ return useStore(registry, rx);
81
+ };
82
+ function mountRx(registry, rx) {
83
+ React__namespace.useEffect(() => registry.mount(rx), [rx, registry]);
84
+ }
85
+ function setRx(registry, rx) {
86
+ return React__namespace.useCallback(value => {
87
+ if (typeof value === "function") {
88
+ registry.set(rx, value(registry.get(rx)));
89
+ return;
90
+ } else {
91
+ registry.set(rx, value);
92
+ }
93
+ }, [registry, rx]);
94
+ }
95
+ function setRxPromise(registry, rx) {
96
+ const cancelRef = React__namespace.useRef(undefined);
97
+ if (!cancelRef.current) {
98
+ cancelRef.current = new Set();
99
+ }
100
+ React__namespace.useEffect(() => () => {
101
+ cancelRef.current.forEach(cancel => cancel());
102
+ cancelRef.current.clear();
103
+ }, []);
104
+ return React__namespace.useCallback(value => {
105
+ registry.set(rx, value);
106
+ return new Promise(resolve => {
107
+ const value = registry.get(rx);
108
+ if (Result__namespace.isSuccess(value) || Result__namespace.isFailure(value)) {
109
+ resolve(Result__namespace.toExit(value));
110
+ } else {
111
+ const cancel = registry.subscribe(rx, value => {
112
+ if (Result__namespace.isSuccess(value) || Result__namespace.isFailure(value)) {
113
+ cancelRef.current.delete(cancel);
114
+ cancel();
115
+ resolve(Result__namespace.toExit(value));
116
+ }
117
+ });
118
+ cancelRef.current.add(cancel);
119
+ }
120
+ });
121
+ }, [registry, rx]);
122
+ }
123
+
124
+ /**
125
+ * @since 1.0.0
126
+ * @category hooks
127
+ */
128
+ const useRxMount = rx => {
129
+ const registry = React__namespace.useContext(RegistryContext);
130
+ mountRx(registry, rx);
131
+ };
132
+
133
+ /**
134
+ * @since 1.0.0
135
+ * @category hooks
136
+ */
137
+ const useRxSet = rx => {
138
+ const registry = React__namespace.useContext(RegistryContext);
139
+ mountRx(registry, rx);
140
+ return setRx(registry, rx);
141
+ };
142
+
143
+ /**
144
+ * @since 1.0.0
145
+ * @category hooks
146
+ */
147
+ const useRxSetPromise = rx => {
148
+ const registry = React__namespace.useContext(RegistryContext);
149
+ return setRxPromise(registry, rx);
150
+ };
151
+
152
+ /**
153
+ * @since 1.0.0
154
+ * @category hooks
155
+ */
156
+ const useRxRefresh = rx => {
157
+ const registry = React__namespace.useContext(RegistryContext);
158
+ mountRx(registry, rx);
159
+ return React__namespace.useCallback(() => {
160
+ registry.refresh(rx);
161
+ }, [registry, rx]);
162
+ };
163
+
164
+ /**
165
+ * @since 1.0.0
166
+ * @category hooks
167
+ */
168
+ const useRx = rx => {
169
+ const registry = React__namespace.useContext(RegistryContext);
170
+ return [useStore(registry, rx), setRx(registry, rx)];
171
+ };
172
+ const suspenseRx = /*#__PURE__*/Rx__namespace.family(rx => Rx__namespace.readable(get => {
173
+ const result = get(rx);
174
+ const value = Result__namespace.noWaiting(result);
175
+ if (value._tag === "Initial") {
176
+ return {
177
+ _tag: "Suspended",
178
+ promise: new Promise(resolve => get.addFinalizer(resolve))
179
+ };
180
+ }
181
+ const isWaiting = Result__namespace.isWaiting(result);
182
+ return {
183
+ _tag: "Value",
184
+ isWaiting,
185
+ value
186
+ };
187
+ }));
188
+ const suspenseRxWaiting = /*#__PURE__*/Rx__namespace.family(rx => Rx__namespace.readable(get => {
189
+ const result = get(rx);
190
+ if (result._tag === "Waiting" || result._tag === "Initial") {
191
+ return {
192
+ _tag: "Suspended",
193
+ promise: new Promise(resolve => get.addFinalizer(resolve))
194
+ };
195
+ }
196
+ return {
197
+ _tag: "Value",
198
+ isWaiting: false,
199
+ value: result
200
+ };
201
+ }));
202
+ const suspenseMounts = /*#__PURE__*/GlobalValue.globalValue("@effect-rx/rx-react/suspenseMounts", () => new Set());
203
+
204
+ /**
205
+ * @since 1.0.0
206
+ * @category hooks
207
+ */
208
+ const useRxSuspense = (rx, options) => {
209
+ const registry = React__namespace.useContext(RegistryContext);
210
+ const resultRx = React__namespace.useMemo(() => options?.suspendOnWaiting ? suspenseRxWaiting(rx) : suspenseRx(rx), [options?.suspendOnWaiting, rx]);
211
+ const result = useStore(registry, resultRx);
212
+ if (result._tag === "Suspended") {
213
+ if (!suspenseMounts.has(resultRx)) {
214
+ suspenseMounts.add(resultRx);
215
+ const unmount = registry.mount(resultRx);
216
+ result.promise.then(function () {
217
+ setTimeout(function () {
218
+ unmount();
219
+ suspenseMounts.delete(resultRx);
220
+ }, 1000);
221
+ });
222
+ }
223
+ throw result.promise;
224
+ }
225
+ return result;
226
+ };
227
+
228
+ /**
229
+ * @since 1.0.0
230
+ * @category hooks
231
+ */
232
+ const useRxSuspenseSuccess = (rx, options) => {
233
+ const result = useRxSuspense(rx, options);
234
+ if (result.value._tag === "Failure") {
235
+ throw Cause__namespace.squash(result.value.cause);
236
+ }
237
+ return {
238
+ isWaiting: result.isWaiting,
239
+ value: result.value.value
240
+ };
241
+ };
242
+
243
+ /**
244
+ * @since 1.0.0
245
+ * @category hooks
246
+ */
247
+ const useRxSubscribe = (rx, f, options) => {
248
+ const registry = React__namespace.useContext(RegistryContext);
249
+ React__namespace.useEffect(() => registry.subscribe(rx, f, options), [registry, rx, f, options?.immediate]);
250
+ };
251
+
252
+ /**
253
+ * @since 1.0.0
254
+ * @category hooks
255
+ */
256
+ const useRxRef = ref => {
257
+ const [value, setValue] = React__namespace.useState(ref.value);
258
+ React__namespace.useEffect(() => ref.subscribe(setValue), [ref]);
259
+ return value;
260
+ };
261
+
262
+ exports.Registry = Registry__namespace;
263
+ exports.Result = Result__namespace;
264
+ exports.Rx = Rx__namespace;
265
+ exports.RxRef = RxRef__namespace;
266
+ exports.RegistryContext = RegistryContext;
267
+ exports.useRx = useRx;
268
+ exports.useRxMount = useRxMount;
269
+ exports.useRxRef = useRxRef;
270
+ exports.useRxRefresh = useRxRefresh;
271
+ exports.useRxSet = useRxSet;
272
+ exports.useRxSetPromise = useRxSetPromise;
273
+ exports.useRxSubscribe = useRxSubscribe;
274
+ exports.useRxSuspense = useRxSuspense;
275
+ exports.useRxSuspenseSuccess = useRxSuspenseSuccess;
276
+ exports.useRxValue = useRxValue;
@@ -0,0 +1,7 @@
1
+ 'use strict';
2
+
3
+ if (process.env.NODE_ENV === "production") {
4
+ module.exports = require("./effect-rx-rx-react.cjs.prod.js");
5
+ } else {
6
+ module.exports = require("./effect-rx-rx-react.cjs.dev.js");
7
+ }
@@ -0,0 +1,17 @@
1
+ export {
2
+ Registry,
3
+ RegistryContext,
4
+ Result,
5
+ Rx,
6
+ RxRef,
7
+ useRx,
8
+ useRxMount,
9
+ useRxRef,
10
+ useRxRefresh,
11
+ useRxSet,
12
+ useRxSetPromise,
13
+ useRxSubscribe,
14
+ useRxSuspense,
15
+ useRxSuspenseSuccess,
16
+ useRxValue
17
+ } from "./effect-rx-rx-react.cjs.js";
@@ -0,0 +1,276 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var Registry = require('@effect-rx/rx/Registry');
6
+ var Result = require('@effect-rx/rx/Result');
7
+ var Rx = require('@effect-rx/rx/Rx');
8
+ var Cause = require('effect/Cause');
9
+ var GlobalValue = require('effect/GlobalValue');
10
+ var React = require('react');
11
+ var RxRef = require('@effect-rx/rx/RxRef');
12
+
13
+ function _interopNamespace(e) {
14
+ if (e && e.__esModule) return e;
15
+ var n = Object.create(null);
16
+ if (e) {
17
+ Object.keys(e).forEach(function (k) {
18
+ if (k !== 'default') {
19
+ var d = Object.getOwnPropertyDescriptor(e, k);
20
+ Object.defineProperty(n, k, d.get ? d : {
21
+ enumerable: true,
22
+ get: function () { return e[k]; }
23
+ });
24
+ }
25
+ });
26
+ }
27
+ n["default"] = e;
28
+ return Object.freeze(n);
29
+ }
30
+
31
+ var Registry__namespace = /*#__PURE__*/_interopNamespace(Registry);
32
+ var Result__namespace = /*#__PURE__*/_interopNamespace(Result);
33
+ var Rx__namespace = /*#__PURE__*/_interopNamespace(Rx);
34
+ var Cause__namespace = /*#__PURE__*/_interopNamespace(Cause);
35
+ var React__namespace = /*#__PURE__*/_interopNamespace(React);
36
+ var RxRef__namespace = /*#__PURE__*/_interopNamespace(RxRef);
37
+
38
+ /**
39
+ * @since 1.0.0
40
+ */
41
+
42
+ /**
43
+ * @since 1.0.0
44
+ * @category context
45
+ */
46
+ const RegistryContext = /*#__PURE__*/React__namespace.createContext( /*#__PURE__*/Registry__namespace.make());
47
+ const storeRegistry = /*#__PURE__*/GlobalValue.globalValue("@effect-rx/rx-react/storeRegistry", () => new WeakMap());
48
+ function makeStore(registry, rx) {
49
+ const stores = storeRegistry.get(registry) ?? storeRegistry.set(registry, new WeakMap()).get(registry);
50
+ const store = stores.get(rx);
51
+ if (store) {
52
+ return store;
53
+ }
54
+ const newStore = {
55
+ subscribe(f) {
56
+ return registry.subscribe(rx, f);
57
+ },
58
+ snapshot() {
59
+ return registry.get(rx);
60
+ }
61
+ };
62
+ stores.set(rx, newStore);
63
+ return newStore;
64
+ }
65
+ function useStore(registry, rx) {
66
+ const store = makeStore(registry, rx);
67
+ return React__namespace.useSyncExternalStore(store.subscribe, store.snapshot);
68
+ }
69
+
70
+ /**
71
+ * @since 1.0.0
72
+ * @category hooks
73
+ */
74
+ const useRxValue = (rx, f) => {
75
+ const registry = React__namespace.useContext(RegistryContext);
76
+ if (f) {
77
+ const rxB = React__namespace.useMemo(() => Rx__namespace.map(rx, f), [rx, f]);
78
+ return useStore(registry, rxB);
79
+ }
80
+ return useStore(registry, rx);
81
+ };
82
+ function mountRx(registry, rx) {
83
+ React__namespace.useEffect(() => registry.mount(rx), [rx, registry]);
84
+ }
85
+ function setRx(registry, rx) {
86
+ return React__namespace.useCallback(value => {
87
+ if (typeof value === "function") {
88
+ registry.set(rx, value(registry.get(rx)));
89
+ return;
90
+ } else {
91
+ registry.set(rx, value);
92
+ }
93
+ }, [registry, rx]);
94
+ }
95
+ function setRxPromise(registry, rx) {
96
+ const cancelRef = React__namespace.useRef(undefined);
97
+ if (!cancelRef.current) {
98
+ cancelRef.current = new Set();
99
+ }
100
+ React__namespace.useEffect(() => () => {
101
+ cancelRef.current.forEach(cancel => cancel());
102
+ cancelRef.current.clear();
103
+ }, []);
104
+ return React__namespace.useCallback(value => {
105
+ registry.set(rx, value);
106
+ return new Promise(resolve => {
107
+ const value = registry.get(rx);
108
+ if (Result__namespace.isSuccess(value) || Result__namespace.isFailure(value)) {
109
+ resolve(Result__namespace.toExit(value));
110
+ } else {
111
+ const cancel = registry.subscribe(rx, value => {
112
+ if (Result__namespace.isSuccess(value) || Result__namespace.isFailure(value)) {
113
+ cancelRef.current.delete(cancel);
114
+ cancel();
115
+ resolve(Result__namespace.toExit(value));
116
+ }
117
+ });
118
+ cancelRef.current.add(cancel);
119
+ }
120
+ });
121
+ }, [registry, rx]);
122
+ }
123
+
124
+ /**
125
+ * @since 1.0.0
126
+ * @category hooks
127
+ */
128
+ const useRxMount = rx => {
129
+ const registry = React__namespace.useContext(RegistryContext);
130
+ mountRx(registry, rx);
131
+ };
132
+
133
+ /**
134
+ * @since 1.0.0
135
+ * @category hooks
136
+ */
137
+ const useRxSet = rx => {
138
+ const registry = React__namespace.useContext(RegistryContext);
139
+ mountRx(registry, rx);
140
+ return setRx(registry, rx);
141
+ };
142
+
143
+ /**
144
+ * @since 1.0.0
145
+ * @category hooks
146
+ */
147
+ const useRxSetPromise = rx => {
148
+ const registry = React__namespace.useContext(RegistryContext);
149
+ return setRxPromise(registry, rx);
150
+ };
151
+
152
+ /**
153
+ * @since 1.0.0
154
+ * @category hooks
155
+ */
156
+ const useRxRefresh = rx => {
157
+ const registry = React__namespace.useContext(RegistryContext);
158
+ mountRx(registry, rx);
159
+ return React__namespace.useCallback(() => {
160
+ registry.refresh(rx);
161
+ }, [registry, rx]);
162
+ };
163
+
164
+ /**
165
+ * @since 1.0.0
166
+ * @category hooks
167
+ */
168
+ const useRx = rx => {
169
+ const registry = React__namespace.useContext(RegistryContext);
170
+ return [useStore(registry, rx), setRx(registry, rx)];
171
+ };
172
+ const suspenseRx = /*#__PURE__*/Rx__namespace.family(rx => Rx__namespace.readable(get => {
173
+ const result = get(rx);
174
+ const value = Result__namespace.noWaiting(result);
175
+ if (value._tag === "Initial") {
176
+ return {
177
+ _tag: "Suspended",
178
+ promise: new Promise(resolve => get.addFinalizer(resolve))
179
+ };
180
+ }
181
+ const isWaiting = Result__namespace.isWaiting(result);
182
+ return {
183
+ _tag: "Value",
184
+ isWaiting,
185
+ value
186
+ };
187
+ }));
188
+ const suspenseRxWaiting = /*#__PURE__*/Rx__namespace.family(rx => Rx__namespace.readable(get => {
189
+ const result = get(rx);
190
+ if (result._tag === "Waiting" || result._tag === "Initial") {
191
+ return {
192
+ _tag: "Suspended",
193
+ promise: new Promise(resolve => get.addFinalizer(resolve))
194
+ };
195
+ }
196
+ return {
197
+ _tag: "Value",
198
+ isWaiting: false,
199
+ value: result
200
+ };
201
+ }));
202
+ const suspenseMounts = /*#__PURE__*/GlobalValue.globalValue("@effect-rx/rx-react/suspenseMounts", () => new Set());
203
+
204
+ /**
205
+ * @since 1.0.0
206
+ * @category hooks
207
+ */
208
+ const useRxSuspense = (rx, options) => {
209
+ const registry = React__namespace.useContext(RegistryContext);
210
+ const resultRx = React__namespace.useMemo(() => options?.suspendOnWaiting ? suspenseRxWaiting(rx) : suspenseRx(rx), [options?.suspendOnWaiting, rx]);
211
+ const result = useStore(registry, resultRx);
212
+ if (result._tag === "Suspended") {
213
+ if (!suspenseMounts.has(resultRx)) {
214
+ suspenseMounts.add(resultRx);
215
+ const unmount = registry.mount(resultRx);
216
+ result.promise.then(function () {
217
+ setTimeout(function () {
218
+ unmount();
219
+ suspenseMounts.delete(resultRx);
220
+ }, 1000);
221
+ });
222
+ }
223
+ throw result.promise;
224
+ }
225
+ return result;
226
+ };
227
+
228
+ /**
229
+ * @since 1.0.0
230
+ * @category hooks
231
+ */
232
+ const useRxSuspenseSuccess = (rx, options) => {
233
+ const result = useRxSuspense(rx, options);
234
+ if (result.value._tag === "Failure") {
235
+ throw Cause__namespace.squash(result.value.cause);
236
+ }
237
+ return {
238
+ isWaiting: result.isWaiting,
239
+ value: result.value.value
240
+ };
241
+ };
242
+
243
+ /**
244
+ * @since 1.0.0
245
+ * @category hooks
246
+ */
247
+ const useRxSubscribe = (rx, f, options) => {
248
+ const registry = React__namespace.useContext(RegistryContext);
249
+ React__namespace.useEffect(() => registry.subscribe(rx, f, options), [registry, rx, f, options?.immediate]);
250
+ };
251
+
252
+ /**
253
+ * @since 1.0.0
254
+ * @category hooks
255
+ */
256
+ const useRxRef = ref => {
257
+ const [value, setValue] = React__namespace.useState(ref.value);
258
+ React__namespace.useEffect(() => ref.subscribe(setValue), [ref]);
259
+ return value;
260
+ };
261
+
262
+ exports.Registry = Registry__namespace;
263
+ exports.Result = Result__namespace;
264
+ exports.Rx = Rx__namespace;
265
+ exports.RxRef = RxRef__namespace;
266
+ exports.RegistryContext = RegistryContext;
267
+ exports.useRx = useRx;
268
+ exports.useRxMount = useRxMount;
269
+ exports.useRxRef = useRxRef;
270
+ exports.useRxRefresh = useRxRefresh;
271
+ exports.useRxSet = useRxSet;
272
+ exports.useRxSetPromise = useRxSetPromise;
273
+ exports.useRxSubscribe = useRxSubscribe;
274
+ exports.useRxSuspense = useRxSuspense;
275
+ exports.useRxSuspenseSuccess = useRxSuspenseSuccess;
276
+ exports.useRxValue = useRxValue;
@@ -1,25 +1,24 @@
1
+ import * as Registry from '@effect-rx/rx/Registry';
2
+ export { Registry };
3
+ import * as Result from '@effect-rx/rx/Result';
4
+ export { Result };
5
+ import * as Rx from '@effect-rx/rx/Rx';
6
+ export { Rx };
7
+ import * as Cause from 'effect/Cause';
8
+ import { globalValue } from 'effect/GlobalValue';
9
+ import * as React from 'react';
10
+ import * as RxRef from '@effect-rx/rx/RxRef';
11
+ export { RxRef };
12
+
1
13
  /**
2
14
  * @since 1.0.0
3
15
  */
4
- import * as Registry from "@effect-rx/rx/Registry";
5
- import * as Result from "@effect-rx/rx/Result";
6
- import * as Rx from "@effect-rx/rx/Rx";
7
- import * as Cause from "effect/Cause";
8
- import { globalValue } from "effect/GlobalValue";
9
- import * as React from "react";
10
- import * as Registry_1 from "@effect-rx/rx/Registry";
11
- export { Registry_1 as Registry };
12
- import * as Result_1 from "@effect-rx/rx/Result";
13
- export { Result_1 as Result };
14
- import * as Rx_1 from "@effect-rx/rx/Rx";
15
- export { Rx_1 as Rx };
16
- import * as RxRef_1 from "@effect-rx/rx/RxRef";
17
- export { RxRef_1 as RxRef };
16
+
18
17
  /**
19
18
  * @since 1.0.0
20
19
  * @category context
21
20
  */
22
- export const RegistryContext = /*#__PURE__*/React.createContext( /*#__PURE__*/Registry.make());
21
+ const RegistryContext = /*#__PURE__*/React.createContext( /*#__PURE__*/Registry.make());
23
22
  const storeRegistry = /*#__PURE__*/globalValue("@effect-rx/rx-react/storeRegistry", () => new WeakMap());
24
23
  function makeStore(registry, rx) {
25
24
  const stores = storeRegistry.get(registry) ?? storeRegistry.set(registry, new WeakMap()).get(registry);
@@ -42,11 +41,12 @@ function useStore(registry, rx) {
42
41
  const store = makeStore(registry, rx);
43
42
  return React.useSyncExternalStore(store.subscribe, store.snapshot);
44
43
  }
44
+
45
45
  /**
46
46
  * @since 1.0.0
47
47
  * @category hooks
48
48
  */
49
- export const useRxValue = (rx, f) => {
49
+ const useRxValue = (rx, f) => {
50
50
  const registry = React.useContext(RegistryContext);
51
51
  if (f) {
52
52
  const rxB = React.useMemo(() => Rx.map(rx, f), [rx, f]);
@@ -95,47 +95,52 @@ function setRxPromise(registry, rx) {
95
95
  });
96
96
  }, [registry, rx]);
97
97
  }
98
+
98
99
  /**
99
100
  * @since 1.0.0
100
101
  * @category hooks
101
102
  */
102
- export const useRxMount = rx => {
103
+ const useRxMount = rx => {
103
104
  const registry = React.useContext(RegistryContext);
104
105
  mountRx(registry, rx);
105
106
  };
107
+
106
108
  /**
107
109
  * @since 1.0.0
108
110
  * @category hooks
109
111
  */
110
- export const useRxSet = rx => {
112
+ const useRxSet = rx => {
111
113
  const registry = React.useContext(RegistryContext);
112
114
  mountRx(registry, rx);
113
115
  return setRx(registry, rx);
114
116
  };
117
+
115
118
  /**
116
119
  * @since 1.0.0
117
120
  * @category hooks
118
121
  */
119
- export const useRxSetPromise = rx => {
122
+ const useRxSetPromise = rx => {
120
123
  const registry = React.useContext(RegistryContext);
121
124
  return setRxPromise(registry, rx);
122
125
  };
126
+
123
127
  /**
124
128
  * @since 1.0.0
125
129
  * @category hooks
126
130
  */
127
- export const useRxRefresh = rx => {
131
+ const useRxRefresh = rx => {
128
132
  const registry = React.useContext(RegistryContext);
129
133
  mountRx(registry, rx);
130
134
  return React.useCallback(() => {
131
135
  registry.refresh(rx);
132
136
  }, [registry, rx]);
133
137
  };
138
+
134
139
  /**
135
140
  * @since 1.0.0
136
141
  * @category hooks
137
142
  */
138
- export const useRx = rx => {
143
+ const useRx = rx => {
139
144
  const registry = React.useContext(RegistryContext);
140
145
  return [useStore(registry, rx), setRx(registry, rx)];
141
146
  };
@@ -170,11 +175,12 @@ const suspenseRxWaiting = /*#__PURE__*/Rx.family(rx => Rx.readable(get => {
170
175
  };
171
176
  }));
172
177
  const suspenseMounts = /*#__PURE__*/globalValue("@effect-rx/rx-react/suspenseMounts", () => new Set());
178
+
173
179
  /**
174
180
  * @since 1.0.0
175
181
  * @category hooks
176
182
  */
177
- export const useRxSuspense = (rx, options) => {
183
+ const useRxSuspense = (rx, options) => {
178
184
  const registry = React.useContext(RegistryContext);
179
185
  const resultRx = React.useMemo(() => options?.suspendOnWaiting ? suspenseRxWaiting(rx) : suspenseRx(rx), [options?.suspendOnWaiting, rx]);
180
186
  const result = useStore(registry, resultRx);
@@ -193,11 +199,12 @@ export const useRxSuspense = (rx, options) => {
193
199
  }
194
200
  return result;
195
201
  };
202
+
196
203
  /**
197
204
  * @since 1.0.0
198
205
  * @category hooks
199
206
  */
200
- export const useRxSuspenseSuccess = (rx, options) => {
207
+ const useRxSuspenseSuccess = (rx, options) => {
201
208
  const result = useRxSuspense(rx, options);
202
209
  if (result.value._tag === "Failure") {
203
210
  throw Cause.squash(result.value.cause);
@@ -207,21 +214,24 @@ export const useRxSuspenseSuccess = (rx, options) => {
207
214
  value: result.value.value
208
215
  };
209
216
  };
217
+
210
218
  /**
211
219
  * @since 1.0.0
212
220
  * @category hooks
213
221
  */
214
- export const useRxSubscribe = (rx, f, options) => {
222
+ const useRxSubscribe = (rx, f, options) => {
215
223
  const registry = React.useContext(RegistryContext);
216
224
  React.useEffect(() => registry.subscribe(rx, f, options), [registry, rx, f, options?.immediate]);
217
225
  };
226
+
218
227
  /**
219
228
  * @since 1.0.0
220
229
  * @category hooks
221
230
  */
222
- export const useRxRef = ref => {
231
+ const useRxRef = ref => {
223
232
  const [value, setValue] = React.useState(ref.value);
224
233
  React.useEffect(() => ref.subscribe(setValue), [ref]);
225
234
  return value;
226
235
  };
227
- //# sourceMappingURL=index.mjs.map
236
+
237
+ export { RegistryContext, useRx, useRxMount, useRxRef, useRxRefresh, useRxSet, useRxSetPromise, useRxSubscribe, useRxSuspense, useRxSuspenseSuccess, useRxValue };
package/package.json CHANGED
@@ -1,45 +1,63 @@
1
1
  {
2
2
  "name": "@effect-rx/rx-react",
3
- "version": "0.4.1",
3
+ "version": "0.5.0",
4
4
  "description": "Reactive toolkit for Effect",
5
- "license": "MIT",
5
+ "main": "dist/effect-rx-rx-react.cjs.js",
6
+ "module": "dist/effect-rx-rx-react.esm.js",
7
+ "publishConfig": {
8
+ "access": "public"
9
+ },
6
10
  "repository": {
7
11
  "type": "git",
8
12
  "url": "https://github.com/effect-ts/rx.git"
9
13
  },
10
- "publishConfig": {
11
- "access": "public"
12
- },
13
- "exports": {
14
- "./*": {
15
- "import": {
16
- "types": "./*.d.ts",
17
- "default": "./mjs/*.mjs"
18
- },
19
- "require": {
20
- "types": "./*.d.ts",
21
- "default": "./*.js"
22
- }
23
- },
24
- ".": {
25
- "import": {
26
- "types": "./index.d.ts",
27
- "default": "./mjs/index.mjs"
28
- },
29
- "require": {
30
- "types": "./index.d.ts",
31
- "default": "./index.js"
32
- }
14
+ "homepage": "https://github.com/effect-ts/rx",
15
+ "preconstruct": {
16
+ "entrypoints": [
17
+ "*.ts"
18
+ ],
19
+ "distFilenameStrategy": "full",
20
+ "exports": {
21
+ "importConditionDefaultExport": "default"
33
22
  }
34
23
  },
35
- "sideEffects": [],
24
+ "effect": {
25
+ "includeInternal": false
26
+ },
27
+ "keywords": [],
36
28
  "author": "Effect contributors",
37
- "dependencies": {
38
- "@effect-rx/rx": "^0.4.1"
29
+ "license": "MIT",
30
+ "sideEffects": [],
31
+ "devDependencies": {
32
+ "@types/react": "^18.2.24",
33
+ "effect": "2.0.0-next.44",
34
+ "react": "^18.2.0"
39
35
  },
40
36
  "peerDependencies": {
41
37
  "effect": "2.0.0-next.38",
42
38
  "react": "^18"
43
39
  },
44
- "main": "./index.js"
40
+ "dependencies": {
41
+ "@effect-rx/rx": "^0.5.0"
42
+ },
43
+ "files": [
44
+ "src",
45
+ "dist"
46
+ ],
47
+ "exports": {
48
+ ".": {
49
+ "types": "./dist/declarations/src/index.d.ts",
50
+ "module": "./dist/effect-rx-rx-react.esm.js",
51
+ "import": "./dist/effect-rx-rx-react.cjs.mjs",
52
+ "default": "./dist/effect-rx-rx-react.cjs.js"
53
+ },
54
+ "./package.json": "./package.json"
55
+ },
56
+ "scripts": {
57
+ "docs": "docgen",
58
+ "lint": "eslint --ext .ts,.tsx src/**/* test/**/*",
59
+ "tc": "tsc --noEmit",
60
+ "test": "vitest",
61
+ "coverage": "vitest run --coverage"
62
+ }
45
63
  }
package/index.d.ts.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["./src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,QAAQ,MAAM,wBAAwB,CAAA;AAClD,OAAO,KAAK,MAAM,MAAM,sBAAsB,CAAA;AAC9C,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAA;AACtC,OAAO,KAAK,KAAK,KAAK,MAAM,qBAAqB,CAAA;AAEjD,OAAO,KAAK,KAAK,IAAI,MAAM,aAAa,CAAA;AAExC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B;;;GAGG;AACH,OAAO,KAAK,QAAQ,MAAM,wBAAwB,CAAA;AAClD;;;GAGG;AACH,OAAO,KAAK,MAAM,MAAM,sBAAsB,CAAA;AAC9C;;;GAGG;AACH,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAA;AACtC;;;GAGG;AACH,OAAO,KAAK,KAAK,MAAM,qBAAqB,CAAA;AAE5C;;;GAGG;AACH,eAAO,MAAM,eAAe,kCAA0D,CAAA;AAmCtF;;;GAGG;AACH,eAAO,MAAM,UAAU,EAAE;IACvB,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;IACpB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;CAQxC,CAAA;AAmDD;;;GAGG;AACH,eAAO,MAAM,UAAU,uBAAsB,IAG5C,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,QAAQ,6DAA4D,IAIhF,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe,0FAK3B,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,YAAY,wCAAuC,MAAM,IAMrE,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,KAAK,8FAE4C,IAAI,CAMjE,CAAA;AA2CD;;;GAGG;AACH,eAAO,MAAM,aAAa,mDAEd;IAAE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAAE;wBAE7B,OAAO;;CAwB5B,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,oBAAoB,mDAErB;IAAE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAAE;wBAE7B,OAAO;;CAW5B,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,iCAEZ,IAAI,YACP;IAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,KACzC,IAMF,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,QAAQ,qCAIpB,CAAA"}
package/index.js DELETED
@@ -1,246 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.useRxValue = exports.useRxSuspenseSuccess = exports.useRxSuspense = exports.useRxSubscribe = exports.useRxSetPromise = exports.useRxSet = exports.useRxRefresh = exports.useRxRef = exports.useRxMount = exports.useRx = exports.RxRef = exports.Rx = exports.Result = exports.RegistryContext = exports.Registry = void 0;
7
- var Registry = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect-rx/rx/Registry"));
8
- var Registry_1 = Registry;
9
- exports.Registry = Registry;
10
- var Result = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect-rx/rx/Result"));
11
- var Result_1 = Result;
12
- exports.Result = Result;
13
- var Rx = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect-rx/rx/Rx"));
14
- var Rx_1 = Rx;
15
- exports.Rx = Rx;
16
- var Cause = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Cause"));
17
- var _GlobalValue = /*#__PURE__*/require("effect/GlobalValue");
18
- var React = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("react"));
19
- var RxRef_1 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect-rx/rx/RxRef"));
20
- exports.RxRef = RxRef_1;
21
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
22
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
23
- /**
24
- * @since 1.0.0
25
- */
26
-
27
- /**
28
- * @since 1.0.0
29
- * @category context
30
- */
31
- const RegistryContext = exports.RegistryContext = /*#__PURE__*/React.createContext( /*#__PURE__*/Registry.make());
32
- const storeRegistry = /*#__PURE__*/(0, _GlobalValue.globalValue)("@effect-rx/rx-react/storeRegistry", () => new WeakMap());
33
- function makeStore(registry, rx) {
34
- const stores = storeRegistry.get(registry) ?? storeRegistry.set(registry, new WeakMap()).get(registry);
35
- const store = stores.get(rx);
36
- if (store) {
37
- return store;
38
- }
39
- const newStore = {
40
- subscribe(f) {
41
- return registry.subscribe(rx, f);
42
- },
43
- snapshot() {
44
- return registry.get(rx);
45
- }
46
- };
47
- stores.set(rx, newStore);
48
- return newStore;
49
- }
50
- function useStore(registry, rx) {
51
- const store = makeStore(registry, rx);
52
- return React.useSyncExternalStore(store.subscribe, store.snapshot);
53
- }
54
- /**
55
- * @since 1.0.0
56
- * @category hooks
57
- */
58
- const useRxValue = (rx, f) => {
59
- const registry = React.useContext(RegistryContext);
60
- if (f) {
61
- const rxB = React.useMemo(() => Rx.map(rx, f), [rx, f]);
62
- return useStore(registry, rxB);
63
- }
64
- return useStore(registry, rx);
65
- };
66
- exports.useRxValue = useRxValue;
67
- function mountRx(registry, rx) {
68
- React.useEffect(() => registry.mount(rx), [rx, registry]);
69
- }
70
- function setRx(registry, rx) {
71
- return React.useCallback(value => {
72
- if (typeof value === "function") {
73
- registry.set(rx, value(registry.get(rx)));
74
- return;
75
- } else {
76
- registry.set(rx, value);
77
- }
78
- }, [registry, rx]);
79
- }
80
- function setRxPromise(registry, rx) {
81
- const cancelRef = React.useRef(undefined);
82
- if (!cancelRef.current) {
83
- cancelRef.current = new Set();
84
- }
85
- React.useEffect(() => () => {
86
- cancelRef.current.forEach(cancel => cancel());
87
- cancelRef.current.clear();
88
- }, []);
89
- return React.useCallback(value => {
90
- registry.set(rx, value);
91
- return new Promise(resolve => {
92
- const value = registry.get(rx);
93
- if (Result.isSuccess(value) || Result.isFailure(value)) {
94
- resolve(Result.toExit(value));
95
- } else {
96
- const cancel = registry.subscribe(rx, value => {
97
- if (Result.isSuccess(value) || Result.isFailure(value)) {
98
- cancelRef.current.delete(cancel);
99
- cancel();
100
- resolve(Result.toExit(value));
101
- }
102
- });
103
- cancelRef.current.add(cancel);
104
- }
105
- });
106
- }, [registry, rx]);
107
- }
108
- /**
109
- * @since 1.0.0
110
- * @category hooks
111
- */
112
- const useRxMount = rx => {
113
- const registry = React.useContext(RegistryContext);
114
- mountRx(registry, rx);
115
- };
116
- /**
117
- * @since 1.0.0
118
- * @category hooks
119
- */
120
- exports.useRxMount = useRxMount;
121
- const useRxSet = rx => {
122
- const registry = React.useContext(RegistryContext);
123
- mountRx(registry, rx);
124
- return setRx(registry, rx);
125
- };
126
- /**
127
- * @since 1.0.0
128
- * @category hooks
129
- */
130
- exports.useRxSet = useRxSet;
131
- const useRxSetPromise = rx => {
132
- const registry = React.useContext(RegistryContext);
133
- return setRxPromise(registry, rx);
134
- };
135
- /**
136
- * @since 1.0.0
137
- * @category hooks
138
- */
139
- exports.useRxSetPromise = useRxSetPromise;
140
- const useRxRefresh = rx => {
141
- const registry = React.useContext(RegistryContext);
142
- mountRx(registry, rx);
143
- return React.useCallback(() => {
144
- registry.refresh(rx);
145
- }, [registry, rx]);
146
- };
147
- /**
148
- * @since 1.0.0
149
- * @category hooks
150
- */
151
- exports.useRxRefresh = useRxRefresh;
152
- const useRx = rx => {
153
- const registry = React.useContext(RegistryContext);
154
- return [useStore(registry, rx), setRx(registry, rx)];
155
- };
156
- exports.useRx = useRx;
157
- const suspenseRx = /*#__PURE__*/Rx.family(rx => Rx.readable(get => {
158
- const result = get(rx);
159
- const value = Result.noWaiting(result);
160
- if (value._tag === "Initial") {
161
- return {
162
- _tag: "Suspended",
163
- promise: new Promise(resolve => get.addFinalizer(resolve))
164
- };
165
- }
166
- const isWaiting = Result.isWaiting(result);
167
- return {
168
- _tag: "Value",
169
- isWaiting,
170
- value
171
- };
172
- }));
173
- const suspenseRxWaiting = /*#__PURE__*/Rx.family(rx => Rx.readable(get => {
174
- const result = get(rx);
175
- if (result._tag === "Waiting" || result._tag === "Initial") {
176
- return {
177
- _tag: "Suspended",
178
- promise: new Promise(resolve => get.addFinalizer(resolve))
179
- };
180
- }
181
- return {
182
- _tag: "Value",
183
- isWaiting: false,
184
- value: result
185
- };
186
- }));
187
- const suspenseMounts = /*#__PURE__*/(0, _GlobalValue.globalValue)("@effect-rx/rx-react/suspenseMounts", () => new Set());
188
- /**
189
- * @since 1.0.0
190
- * @category hooks
191
- */
192
- const useRxSuspense = (rx, options) => {
193
- const registry = React.useContext(RegistryContext);
194
- const resultRx = React.useMemo(() => options?.suspendOnWaiting ? suspenseRxWaiting(rx) : suspenseRx(rx), [options?.suspendOnWaiting, rx]);
195
- const result = useStore(registry, resultRx);
196
- if (result._tag === "Suspended") {
197
- if (!suspenseMounts.has(resultRx)) {
198
- suspenseMounts.add(resultRx);
199
- const unmount = registry.mount(resultRx);
200
- result.promise.then(function () {
201
- setTimeout(function () {
202
- unmount();
203
- suspenseMounts.delete(resultRx);
204
- }, 1000);
205
- });
206
- }
207
- throw result.promise;
208
- }
209
- return result;
210
- };
211
- /**
212
- * @since 1.0.0
213
- * @category hooks
214
- */
215
- exports.useRxSuspense = useRxSuspense;
216
- const useRxSuspenseSuccess = (rx, options) => {
217
- const result = useRxSuspense(rx, options);
218
- if (result.value._tag === "Failure") {
219
- throw Cause.squash(result.value.cause);
220
- }
221
- return {
222
- isWaiting: result.isWaiting,
223
- value: result.value.value
224
- };
225
- };
226
- /**
227
- * @since 1.0.0
228
- * @category hooks
229
- */
230
- exports.useRxSuspenseSuccess = useRxSuspenseSuccess;
231
- const useRxSubscribe = (rx, f, options) => {
232
- const registry = React.useContext(RegistryContext);
233
- React.useEffect(() => registry.subscribe(rx, f, options), [registry, rx, f, options?.immediate]);
234
- };
235
- /**
236
- * @since 1.0.0
237
- * @category hooks
238
- */
239
- exports.useRxSubscribe = useRxSubscribe;
240
- const useRxRef = ref => {
241
- const [value, setValue] = React.useState(ref.value);
242
- React.useEffect(() => ref.subscribe(setValue), [ref]);
243
- return value;
244
- };
245
- exports.useRxRef = useRxRef;
246
- //# sourceMappingURL=index.js.map
package/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","names":["Registry","_interopRequireWildcard","require","Registry_1","exports","Result","Result_1","Rx","Rx_1","Cause","_GlobalValue","React","RxRef","RxRef_1","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","RegistryContext","createContext","make","storeRegistry","globalValue","makeStore","registry","rx","stores","store","newStore","subscribe","f","snapshot","useStore","useSyncExternalStore","useRxValue","useContext","rxB","useMemo","map","mountRx","useEffect","mount","setRx","useCallback","value","setRxPromise","cancelRef","useRef","undefined","current","Set","forEach","cancel","clear","Promise","resolve","isSuccess","isFailure","toExit","delete","add","useRxMount","useRxSet","useRxSetPromise","useRxRefresh","refresh","useRx","suspenseRx","family","readable","result","noWaiting","_tag","promise","addFinalizer","isWaiting","suspenseRxWaiting","suspenseMounts","useRxSuspense","options","resultRx","suspendOnWaiting","unmount","then","setTimeout","useRxSuspenseSuccess","squash","cause","useRxSubscribe","immediate","useRxRef","ref","setValue","useState"],"sources":["./src/index.ts"],"sourcesContent":[null],"mappings":"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"}
package/mjs/index.mjs.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.mjs","names":["Registry","Result","Rx","Cause","globalValue","React","RxRef","RegistryContext","createContext","make","storeRegistry","WeakMap","makeStore","registry","rx","stores","get","set","store","newStore","subscribe","f","snapshot","useStore","useSyncExternalStore","useRxValue","useContext","rxB","useMemo","map","mountRx","useEffect","mount","setRx","useCallback","value","setRxPromise","cancelRef","useRef","undefined","current","Set","forEach","cancel","clear","Promise","resolve","isSuccess","isFailure","toExit","delete","add","useRxMount","useRxSet","useRxSetPromise","useRxRefresh","refresh","useRx","suspenseRx","family","readable","result","noWaiting","_tag","promise","addFinalizer","isWaiting","suspenseRxWaiting","suspenseMounts","useRxSuspense","options","resultRx","suspendOnWaiting","has","unmount","then","setTimeout","useRxSuspenseSuccess","squash","cause","useRxSubscribe","immediate","useRxRef","ref","setValue","useState"],"sources":["../src/index.ts"],"sourcesContent":[null],"mappings":"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"}
@@ -1,11 +0,0 @@
1
- {
2
- "extends": "../../tsconfig.base.json",
3
- "compilerOptions": {
4
- "outDir": "build/esm",
5
- "declarationDir": "build/dts",
6
- "tsBuildInfoFile": "build/tsbuildinfo/esm.tsbuildinfo",
7
- "rootDir": "src"
8
- },
9
- "include": ["src/**/*.ts"],
10
- "references": [{ "path": "../rx" }]
11
- }
@@ -1,11 +0,0 @@
1
- {
2
- "extends": "../../tsconfig.base.json",
3
- "compilerOptions": {
4
- "tsBuildInfoFile": "build/tsbuildinfo/examples.tsbuildinfo",
5
- "rootDir": "examples",
6
- "module": "CommonJS",
7
- "outDir": "build/examples"
8
- },
9
- "include": ["examples/**/*.ts"],
10
- "references": [{ "path": "./tsconfig.build.json" }]
11
- }
package/tsconfig.json DELETED
@@ -1,11 +0,0 @@
1
- {
2
- "extends": "../../tsconfig.base.json",
3
- "compilerOptions": {
4
- "tsBuildInfoFile": "build/tsbuildinfo/tsconfig.tsbuildinfo"
5
- },
6
- "references": [
7
- { "path": "./tsconfig.build.json" },
8
- { "path": "./tsconfig.test.json" },
9
- { "path": "./tsconfig.examples.json" }
10
- ]
11
- }
@@ -1,12 +0,0 @@
1
- {
2
- "extends": "../../tsconfig.base.json",
3
- "compilerOptions": {
4
- "outDir": "build/test",
5
- "declarationDir": "build/test-dts",
6
- "tsBuildInfoFile": "build/tsbuildinfo/test.tsbuildinfo",
7
- "rootDir": "test",
8
- "types": ["vitest/globals"]
9
- },
10
- "include": ["test/**/*.ts"],
11
- "references": [{ "path": "./tsconfig.build.json" }]
12
- }