@effect-rx/rx-react 0.11.3 → 0.13.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/index.js +290 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/{declarations/src → dts}/index.d.ts +2 -8
- package/dist/dts/index.d.ts.map +1 -0
- package/dist/{effect-rx-rx-react.esm.js → esm/index.js} +46 -52
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/package.json +4 -0
- package/package.json +14 -47
- package/src/index.ts +10 -22
- package/dist/declarations/src/index.d.ts.map +0 -1
- package/dist/effect-rx-rx-react.cjs.d.mts +0 -2
- package/dist/effect-rx-rx-react.cjs.d.mts.map +0 -1
- package/dist/effect-rx-rx-react.cjs.d.ts +0 -2
- package/dist/effect-rx-rx-react.cjs.d.ts.map +0 -1
- package/dist/effect-rx-rx-react.cjs.dev.js +0 -285
- package/dist/effect-rx-rx-react.cjs.js +0 -7
- package/dist/effect-rx-rx-react.cjs.mjs +0 -18
- package/dist/effect-rx-rx-react.cjs.prod.js +0 -285
- package/src/tsconfig.json +0 -48
@@ -0,0 +1,290 @@
|
|
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.useRxRefProp = 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 = Registry;
|
9
|
+
exports.Registry = Registry;
|
10
|
+
var Result = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect-rx/rx/Result"));
|
11
|
+
var _Result = Result;
|
12
|
+
exports.Result = Result;
|
13
|
+
var Rx = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect-rx/rx/Rx"));
|
14
|
+
var _Rx = 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 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect-rx/rx/RxRef"));
|
20
|
+
exports.RxRef = _RxRef;
|
21
|
+
function _getRequireWildcardCache(e) {
|
22
|
+
if ("function" != typeof WeakMap) return null;
|
23
|
+
var r = new WeakMap(),
|
24
|
+
t = new WeakMap();
|
25
|
+
return (_getRequireWildcardCache = function (e) {
|
26
|
+
return e ? t : r;
|
27
|
+
})(e);
|
28
|
+
}
|
29
|
+
function _interopRequireWildcard(e, r) {
|
30
|
+
if (!r && e && e.__esModule) return e;
|
31
|
+
if (null === e || "object" != typeof e && "function" != typeof e) return {
|
32
|
+
default: e
|
33
|
+
};
|
34
|
+
var t = _getRequireWildcardCache(r);
|
35
|
+
if (t && t.has(e)) return t.get(e);
|
36
|
+
var n = {
|
37
|
+
__proto__: null
|
38
|
+
},
|
39
|
+
a = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
40
|
+
for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) {
|
41
|
+
var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;
|
42
|
+
i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];
|
43
|
+
}
|
44
|
+
return n.default = e, t && t.set(e, n), n;
|
45
|
+
}
|
46
|
+
/**
|
47
|
+
* @since 1.0.0
|
48
|
+
*/
|
49
|
+
|
50
|
+
/**
|
51
|
+
* @since 1.0.0
|
52
|
+
* @category modules
|
53
|
+
*/
|
54
|
+
|
55
|
+
/**
|
56
|
+
* @since 1.0.0
|
57
|
+
* @category modules
|
58
|
+
*/
|
59
|
+
|
60
|
+
/**
|
61
|
+
* @since 1.0.0
|
62
|
+
* @category modules
|
63
|
+
*/
|
64
|
+
|
65
|
+
/**
|
66
|
+
* @since 1.0.0
|
67
|
+
* @category modules
|
68
|
+
*/
|
69
|
+
|
70
|
+
/**
|
71
|
+
* @since 1.0.0
|
72
|
+
* @category context
|
73
|
+
*/
|
74
|
+
const RegistryContext = exports.RegistryContext = /*#__PURE__*/React.createContext( /*#__PURE__*/Registry.make());
|
75
|
+
const storeRegistry = /*#__PURE__*/(0, _GlobalValue.globalValue)("@effect-rx/rx-react/storeRegistry", () => new WeakMap());
|
76
|
+
function makeStore(registry, rx) {
|
77
|
+
const stores = storeRegistry.get(registry) ?? storeRegistry.set(registry, new WeakMap()).get(registry);
|
78
|
+
const store = stores.get(rx);
|
79
|
+
if (store) {
|
80
|
+
return store;
|
81
|
+
}
|
82
|
+
const newStore = {
|
83
|
+
subscribe(f) {
|
84
|
+
return registry.subscribe(rx, f);
|
85
|
+
},
|
86
|
+
snapshot() {
|
87
|
+
return registry.get(rx);
|
88
|
+
}
|
89
|
+
};
|
90
|
+
stores.set(rx, newStore);
|
91
|
+
return newStore;
|
92
|
+
}
|
93
|
+
function useStore(registry, rx) {
|
94
|
+
const store = makeStore(registry, rx);
|
95
|
+
return React.useSyncExternalStore(store.subscribe, store.snapshot);
|
96
|
+
}
|
97
|
+
/**
|
98
|
+
* @since 1.0.0
|
99
|
+
* @category hooks
|
100
|
+
*/
|
101
|
+
const useRxValue = (rx, f) => {
|
102
|
+
const registry = React.useContext(RegistryContext);
|
103
|
+
if (f) {
|
104
|
+
const rxB = React.useMemo(() => Rx.map(rx, f), [rx, f]);
|
105
|
+
return useStore(registry, rxB);
|
106
|
+
}
|
107
|
+
return useStore(registry, rx);
|
108
|
+
};
|
109
|
+
exports.useRxValue = useRxValue;
|
110
|
+
function mountRx(registry, rx) {
|
111
|
+
React.useEffect(() => registry.mount(rx), [rx, registry]);
|
112
|
+
}
|
113
|
+
function setRx(registry, rx) {
|
114
|
+
return React.useCallback(value => {
|
115
|
+
if (typeof value === "function") {
|
116
|
+
registry.set(rx, value(registry.get(rx)));
|
117
|
+
return;
|
118
|
+
} else {
|
119
|
+
registry.set(rx, value);
|
120
|
+
}
|
121
|
+
}, [registry, rx]);
|
122
|
+
}
|
123
|
+
function setRxPromise(registry, rx) {
|
124
|
+
const cancelRef = React.useRef(undefined);
|
125
|
+
if (!cancelRef.current) {
|
126
|
+
cancelRef.current = new Set();
|
127
|
+
}
|
128
|
+
React.useEffect(() => () => {
|
129
|
+
cancelRef.current.forEach(cancel => cancel());
|
130
|
+
cancelRef.current.clear();
|
131
|
+
}, []);
|
132
|
+
return React.useCallback(value => {
|
133
|
+
registry.set(rx, value);
|
134
|
+
return new Promise(resolve => {
|
135
|
+
const value = registry.get(rx);
|
136
|
+
if (Result.isSuccess(value) || Result.isFailure(value)) {
|
137
|
+
resolve(Result.toExit(value));
|
138
|
+
} else {
|
139
|
+
const cancel = registry.subscribe(rx, value => {
|
140
|
+
if (Result.isSuccess(value) || Result.isFailure(value)) {
|
141
|
+
cancelRef.current.delete(cancel);
|
142
|
+
cancel();
|
143
|
+
resolve(Result.toExit(value));
|
144
|
+
}
|
145
|
+
});
|
146
|
+
cancelRef.current.add(cancel);
|
147
|
+
}
|
148
|
+
});
|
149
|
+
}, [registry, rx]);
|
150
|
+
}
|
151
|
+
/**
|
152
|
+
* @since 1.0.0
|
153
|
+
* @category hooks
|
154
|
+
*/
|
155
|
+
const useRxMount = rx => {
|
156
|
+
const registry = React.useContext(RegistryContext);
|
157
|
+
mountRx(registry, rx);
|
158
|
+
};
|
159
|
+
/**
|
160
|
+
* @since 1.0.0
|
161
|
+
* @category hooks
|
162
|
+
*/
|
163
|
+
exports.useRxMount = useRxMount;
|
164
|
+
const useRxSet = rx => {
|
165
|
+
const registry = React.useContext(RegistryContext);
|
166
|
+
mountRx(registry, rx);
|
167
|
+
return setRx(registry, rx);
|
168
|
+
};
|
169
|
+
/**
|
170
|
+
* @since 1.0.0
|
171
|
+
* @category hooks
|
172
|
+
*/
|
173
|
+
exports.useRxSet = useRxSet;
|
174
|
+
const useRxSetPromise = rx => {
|
175
|
+
const registry = React.useContext(RegistryContext);
|
176
|
+
return setRxPromise(registry, rx);
|
177
|
+
};
|
178
|
+
/**
|
179
|
+
* @since 1.0.0
|
180
|
+
* @category hooks
|
181
|
+
*/
|
182
|
+
exports.useRxSetPromise = useRxSetPromise;
|
183
|
+
const useRxRefresh = rx => {
|
184
|
+
const registry = React.useContext(RegistryContext);
|
185
|
+
mountRx(registry, rx);
|
186
|
+
return React.useCallback(() => {
|
187
|
+
registry.refresh(rx);
|
188
|
+
}, [registry, rx]);
|
189
|
+
};
|
190
|
+
/**
|
191
|
+
* @since 1.0.0
|
192
|
+
* @category hooks
|
193
|
+
*/
|
194
|
+
exports.useRxRefresh = useRxRefresh;
|
195
|
+
const useRx = rx => {
|
196
|
+
const registry = React.useContext(RegistryContext);
|
197
|
+
return [useStore(registry, rx), setRx(registry, rx)];
|
198
|
+
};
|
199
|
+
exports.useRx = useRx;
|
200
|
+
const suspenseRx = /*#__PURE__*/Rx.family(rx => Rx.readable(get => {
|
201
|
+
const result = get(rx);
|
202
|
+
if (result._tag === "Initial") {
|
203
|
+
return {
|
204
|
+
_tag: "Suspended",
|
205
|
+
promise: new Promise(resolve => get.addFinalizer(resolve))
|
206
|
+
};
|
207
|
+
}
|
208
|
+
return {
|
209
|
+
_tag: "Value",
|
210
|
+
value: result
|
211
|
+
};
|
212
|
+
}));
|
213
|
+
const suspenseRxWaiting = /*#__PURE__*/Rx.family(rx => Rx.readable(get => {
|
214
|
+
const result = get(rx);
|
215
|
+
if (result.waiting || result._tag === "Initial") {
|
216
|
+
return {
|
217
|
+
_tag: "Suspended",
|
218
|
+
promise: new Promise(resolve => get.addFinalizer(resolve))
|
219
|
+
};
|
220
|
+
}
|
221
|
+
return {
|
222
|
+
_tag: "Value",
|
223
|
+
value: result
|
224
|
+
};
|
225
|
+
}));
|
226
|
+
const suspenseMounts = /*#__PURE__*/(0, _GlobalValue.globalValue)("@effect-rx/rx-react/suspenseMounts", () => new Set());
|
227
|
+
/**
|
228
|
+
* @since 1.0.0
|
229
|
+
* @category hooks
|
230
|
+
*/
|
231
|
+
const useRxSuspense = (rx, options) => {
|
232
|
+
const registry = React.useContext(RegistryContext);
|
233
|
+
const resultRx = React.useMemo(() => options?.suspendOnWaiting ? suspenseRxWaiting(rx) : suspenseRx(rx), [options?.suspendOnWaiting, rx]);
|
234
|
+
const result = useStore(registry, resultRx);
|
235
|
+
if (result._tag === "Suspended") {
|
236
|
+
if (!suspenseMounts.has(resultRx)) {
|
237
|
+
suspenseMounts.add(resultRx);
|
238
|
+
const unmount = registry.mount(resultRx);
|
239
|
+
result.promise.then(function () {
|
240
|
+
setTimeout(function () {
|
241
|
+
unmount();
|
242
|
+
suspenseMounts.delete(resultRx);
|
243
|
+
}, 1000);
|
244
|
+
});
|
245
|
+
}
|
246
|
+
throw result.promise;
|
247
|
+
}
|
248
|
+
return result.value;
|
249
|
+
};
|
250
|
+
/**
|
251
|
+
* @since 1.0.0
|
252
|
+
* @category hooks
|
253
|
+
*/
|
254
|
+
exports.useRxSuspense = useRxSuspense;
|
255
|
+
const useRxSuspenseSuccess = (rx, options) => {
|
256
|
+
const result = useRxSuspense(rx, options);
|
257
|
+
if (result._tag === "Failure") {
|
258
|
+
throw Cause.squash(result.cause);
|
259
|
+
}
|
260
|
+
return result;
|
261
|
+
};
|
262
|
+
/**
|
263
|
+
* @since 1.0.0
|
264
|
+
* @category hooks
|
265
|
+
*/
|
266
|
+
exports.useRxSuspenseSuccess = useRxSuspenseSuccess;
|
267
|
+
const useRxSubscribe = (rx, f, options) => {
|
268
|
+
const registry = React.useContext(RegistryContext);
|
269
|
+
React.useEffect(() => registry.subscribe(rx, f, options), [registry, rx, f, options?.immediate]);
|
270
|
+
};
|
271
|
+
/**
|
272
|
+
* @since 1.0.0
|
273
|
+
* @category hooks
|
274
|
+
*/
|
275
|
+
exports.useRxSubscribe = useRxSubscribe;
|
276
|
+
const useRxRef = ref => {
|
277
|
+
const [value, setValue] = React.useState(ref.value);
|
278
|
+
React.useEffect(() => ref.subscribe(setValue), [ref]);
|
279
|
+
return value;
|
280
|
+
};
|
281
|
+
/**
|
282
|
+
* @since 1.0.0
|
283
|
+
* @category hooks
|
284
|
+
*/
|
285
|
+
exports.useRxRef = useRxRef;
|
286
|
+
const useRxRefProp = (ref, prop) => {
|
287
|
+
return React.useMemo(() => ref.prop(prop), [ref, prop]);
|
288
|
+
};
|
289
|
+
exports.useRxRefProp = useRxRefProp;
|
290
|
+
//# sourceMappingURL=index.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","names":["Registry","_interopRequireWildcard","require","_Registry","exports","Result","_Result","Rx","_Rx","Cause","_GlobalValue","React","_RxRef","RxRef","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","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","_tag","promise","addFinalizer","suspenseRxWaiting","waiting","suspenseMounts","useRxSuspense","options","resultRx","suspendOnWaiting","unmount","then","setTimeout","useRxSuspenseSuccess","squash","cause","useRxSubscribe","immediate","useRxRef","ref","setValue","useState","useRxRefProp","prop"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"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"}
|
@@ -71,20 +71,14 @@ export declare const useRx: <R, W>(rx: Rx.Writable<R, W>) => readonly [value: R,
|
|
71
71
|
*/
|
72
72
|
export declare const useRxSuspense: <E, A>(rx: Rx.Rx<Result.Result<E, A>>, options?: {
|
73
73
|
readonly suspendOnWaiting?: boolean;
|
74
|
-
}) =>
|
75
|
-
readonly isWaiting: boolean;
|
76
|
-
readonly value: Result.Success<E, A> | Result.Failure<E, A>;
|
77
|
-
};
|
74
|
+
}) => Result.Success<E, A> | Result.Failure<E, A>;
|
78
75
|
/**
|
79
76
|
* @since 1.0.0
|
80
77
|
* @category hooks
|
81
78
|
*/
|
82
79
|
export declare const useRxSuspenseSuccess: <E, A>(rx: Rx.Rx<Result.Result<E, A>>, options?: {
|
83
80
|
readonly suspendOnWaiting?: boolean;
|
84
|
-
}) =>
|
85
|
-
readonly isWaiting: boolean;
|
86
|
-
readonly value: A;
|
87
|
-
};
|
81
|
+
}) => Result.Success<E, A>;
|
88
82
|
/**
|
89
83
|
* @since 1.0.0
|
90
84
|
* @category hooks
|
@@ -0,0 +1 @@
|
|
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;AAwCD;;;GAGG;AACH,eAAO,MAAM,aAAa,mDAEd;IAAE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAAE,gDAuBlD,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,oBAAoB,mDAErB;IAAE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAAE,yBAOlD,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;AAED;;;GAGG;AACH,eAAO,MAAM,YAAY,2EAExB,CAAA"}
|
@@ -1,24 +1,37 @@
|
|
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
|
-
|
13
1
|
/**
|
14
2
|
* @since 1.0.0
|
15
3
|
*/
|
16
|
-
|
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
|
+
/**
|
11
|
+
* @since 1.0.0
|
12
|
+
* @category modules
|
13
|
+
*/
|
14
|
+
export * as Registry from "@effect-rx/rx/Registry";
|
15
|
+
/**
|
16
|
+
* @since 1.0.0
|
17
|
+
* @category modules
|
18
|
+
*/
|
19
|
+
export * as Result from "@effect-rx/rx/Result";
|
20
|
+
/**
|
21
|
+
* @since 1.0.0
|
22
|
+
* @category modules
|
23
|
+
*/
|
24
|
+
export * as Rx from "@effect-rx/rx/Rx";
|
25
|
+
/**
|
26
|
+
* @since 1.0.0
|
27
|
+
* @category modules
|
28
|
+
*/
|
29
|
+
export * as RxRef from "@effect-rx/rx/RxRef";
|
17
30
|
/**
|
18
31
|
* @since 1.0.0
|
19
32
|
* @category context
|
20
33
|
*/
|
21
|
-
const RegistryContext = /*#__PURE__*/React.createContext( /*#__PURE__*/Registry.make());
|
34
|
+
export const RegistryContext = /*#__PURE__*/React.createContext( /*#__PURE__*/Registry.make());
|
22
35
|
const storeRegistry = /*#__PURE__*/globalValue("@effect-rx/rx-react/storeRegistry", () => new WeakMap());
|
23
36
|
function makeStore(registry, rx) {
|
24
37
|
const stores = storeRegistry.get(registry) ?? storeRegistry.set(registry, new WeakMap()).get(registry);
|
@@ -41,12 +54,11 @@ function useStore(registry, rx) {
|
|
41
54
|
const store = makeStore(registry, rx);
|
42
55
|
return React.useSyncExternalStore(store.subscribe, store.snapshot);
|
43
56
|
}
|
44
|
-
|
45
57
|
/**
|
46
58
|
* @since 1.0.0
|
47
59
|
* @category hooks
|
48
60
|
*/
|
49
|
-
const useRxValue = (rx, f) => {
|
61
|
+
export const useRxValue = (rx, f) => {
|
50
62
|
const registry = React.useContext(RegistryContext);
|
51
63
|
if (f) {
|
52
64
|
const rxB = React.useMemo(() => Rx.map(rx, f), [rx, f]);
|
@@ -95,74 +107,66 @@ function setRxPromise(registry, rx) {
|
|
95
107
|
});
|
96
108
|
}, [registry, rx]);
|
97
109
|
}
|
98
|
-
|
99
110
|
/**
|
100
111
|
* @since 1.0.0
|
101
112
|
* @category hooks
|
102
113
|
*/
|
103
|
-
const useRxMount = rx => {
|
114
|
+
export const useRxMount = rx => {
|
104
115
|
const registry = React.useContext(RegistryContext);
|
105
116
|
mountRx(registry, rx);
|
106
117
|
};
|
107
|
-
|
108
118
|
/**
|
109
119
|
* @since 1.0.0
|
110
120
|
* @category hooks
|
111
121
|
*/
|
112
|
-
const useRxSet = rx => {
|
122
|
+
export const useRxSet = rx => {
|
113
123
|
const registry = React.useContext(RegistryContext);
|
114
124
|
mountRx(registry, rx);
|
115
125
|
return setRx(registry, rx);
|
116
126
|
};
|
117
|
-
|
118
127
|
/**
|
119
128
|
* @since 1.0.0
|
120
129
|
* @category hooks
|
121
130
|
*/
|
122
|
-
const useRxSetPromise = rx => {
|
131
|
+
export const useRxSetPromise = rx => {
|
123
132
|
const registry = React.useContext(RegistryContext);
|
124
133
|
return setRxPromise(registry, rx);
|
125
134
|
};
|
126
|
-
|
127
135
|
/**
|
128
136
|
* @since 1.0.0
|
129
137
|
* @category hooks
|
130
138
|
*/
|
131
|
-
const useRxRefresh = rx => {
|
139
|
+
export const useRxRefresh = rx => {
|
132
140
|
const registry = React.useContext(RegistryContext);
|
133
141
|
mountRx(registry, rx);
|
134
142
|
return React.useCallback(() => {
|
135
143
|
registry.refresh(rx);
|
136
144
|
}, [registry, rx]);
|
137
145
|
};
|
138
|
-
|
139
146
|
/**
|
140
147
|
* @since 1.0.0
|
141
148
|
* @category hooks
|
142
149
|
*/
|
143
|
-
const useRx = rx => {
|
150
|
+
export const useRx = rx => {
|
144
151
|
const registry = React.useContext(RegistryContext);
|
145
152
|
return [useStore(registry, rx), setRx(registry, rx)];
|
146
153
|
};
|
147
154
|
const suspenseRx = /*#__PURE__*/Rx.family(rx => Rx.readable(get => {
|
148
155
|
const result = get(rx);
|
149
|
-
|
150
|
-
if (value._tag === "Initial") {
|
156
|
+
if (result._tag === "Initial") {
|
151
157
|
return {
|
152
158
|
_tag: "Suspended",
|
153
159
|
promise: new Promise(resolve => get.addFinalizer(resolve))
|
154
160
|
};
|
155
161
|
}
|
156
|
-
const isWaiting = Result.isWaiting(result);
|
157
162
|
return {
|
158
163
|
_tag: "Value",
|
159
|
-
|
160
|
-
value
|
164
|
+
value: result
|
161
165
|
};
|
162
166
|
}));
|
163
167
|
const suspenseRxWaiting = /*#__PURE__*/Rx.family(rx => Rx.readable(get => {
|
164
168
|
const result = get(rx);
|
165
|
-
if (result.
|
169
|
+
if (result.waiting || result._tag === "Initial") {
|
166
170
|
return {
|
167
171
|
_tag: "Suspended",
|
168
172
|
promise: new Promise(resolve => get.addFinalizer(resolve))
|
@@ -170,17 +174,15 @@ const suspenseRxWaiting = /*#__PURE__*/Rx.family(rx => Rx.readable(get => {
|
|
170
174
|
}
|
171
175
|
return {
|
172
176
|
_tag: "Value",
|
173
|
-
isWaiting: false,
|
174
177
|
value: result
|
175
178
|
};
|
176
179
|
}));
|
177
180
|
const suspenseMounts = /*#__PURE__*/globalValue("@effect-rx/rx-react/suspenseMounts", () => new Set());
|
178
|
-
|
179
181
|
/**
|
180
182
|
* @since 1.0.0
|
181
183
|
* @category hooks
|
182
184
|
*/
|
183
|
-
const useRxSuspense = (rx, options) => {
|
185
|
+
export const useRxSuspense = (rx, options) => {
|
184
186
|
const registry = React.useContext(RegistryContext);
|
185
187
|
const resultRx = React.useMemo(() => options?.suspendOnWaiting ? suspenseRxWaiting(rx) : suspenseRx(rx), [options?.suspendOnWaiting, rx]);
|
186
188
|
const result = useStore(registry, resultRx);
|
@@ -197,49 +199,41 @@ const useRxSuspense = (rx, options) => {
|
|
197
199
|
}
|
198
200
|
throw result.promise;
|
199
201
|
}
|
200
|
-
return result;
|
202
|
+
return result.value;
|
201
203
|
};
|
202
|
-
|
203
204
|
/**
|
204
205
|
* @since 1.0.0
|
205
206
|
* @category hooks
|
206
207
|
*/
|
207
|
-
const useRxSuspenseSuccess = (rx, options) => {
|
208
|
+
export const useRxSuspenseSuccess = (rx, options) => {
|
208
209
|
const result = useRxSuspense(rx, options);
|
209
|
-
if (result.
|
210
|
-
throw Cause.squash(result.
|
210
|
+
if (result._tag === "Failure") {
|
211
|
+
throw Cause.squash(result.cause);
|
211
212
|
}
|
212
|
-
return
|
213
|
-
isWaiting: result.isWaiting,
|
214
|
-
value: result.value.value
|
215
|
-
};
|
213
|
+
return result;
|
216
214
|
};
|
217
|
-
|
218
215
|
/**
|
219
216
|
* @since 1.0.0
|
220
217
|
* @category hooks
|
221
218
|
*/
|
222
|
-
const useRxSubscribe = (rx, f, options) => {
|
219
|
+
export const useRxSubscribe = (rx, f, options) => {
|
223
220
|
const registry = React.useContext(RegistryContext);
|
224
221
|
React.useEffect(() => registry.subscribe(rx, f, options), [registry, rx, f, options?.immediate]);
|
225
222
|
};
|
226
|
-
|
227
223
|
/**
|
228
224
|
* @since 1.0.0
|
229
225
|
* @category hooks
|
230
226
|
*/
|
231
|
-
const useRxRef = ref => {
|
227
|
+
export const useRxRef = ref => {
|
232
228
|
const [value, setValue] = React.useState(ref.value);
|
233
229
|
React.useEffect(() => ref.subscribe(setValue), [ref]);
|
234
230
|
return value;
|
235
231
|
};
|
236
|
-
|
237
232
|
/**
|
238
233
|
* @since 1.0.0
|
239
234
|
* @category hooks
|
240
235
|
*/
|
241
|
-
const useRxRefProp = (ref, prop) => {
|
236
|
+
export const useRxRefProp = (ref, prop) => {
|
242
237
|
return React.useMemo(() => ref.prop(prop), [ref, prop]);
|
243
238
|
};
|
244
|
-
|
245
|
-
export { RegistryContext, useRx, useRxMount, useRxRef, useRxRefProp, useRxRefresh, useRxSet, useRxSetPromise, useRxSubscribe, useRxSuspense, useRxSuspenseSuccess, useRxValue };
|
239
|
+
//# sourceMappingURL=index.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","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","_tag","promise","addFinalizer","suspenseRxWaiting","waiting","suspenseMounts","useRxSuspense","options","resultRx","suspendOnWaiting","has","unmount","then","setTimeout","useRxSuspenseSuccess","squash","cause","useRxSubscribe","immediate","useRxRef","ref","setValue","useState","useRxRefProp","prop"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"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"}
|
package/package.json
CHANGED
@@ -1,63 +1,30 @@
|
|
1
1
|
{
|
2
2
|
"name": "@effect-rx/rx-react",
|
3
|
-
"version": "0.
|
3
|
+
"version": "0.13.0",
|
4
4
|
"description": "Reactive toolkit for Effect",
|
5
|
-
"
|
6
|
-
"module": "dist/effect-rx-rx-react.esm.js",
|
7
|
-
"publishConfig": {
|
8
|
-
"access": "public"
|
9
|
-
},
|
5
|
+
"license": "MIT",
|
10
6
|
"repository": {
|
11
7
|
"type": "git",
|
12
8
|
"url": "https://github.com/effect-ts/rx.git"
|
13
9
|
},
|
14
|
-
"
|
15
|
-
"preconstruct": {
|
16
|
-
"entrypoints": [
|
17
|
-
"*.ts"
|
18
|
-
],
|
19
|
-
"distFilenameStrategy": "full",
|
20
|
-
"exports": {
|
21
|
-
"importConditionDefaultExport": "default"
|
22
|
-
}
|
23
|
-
},
|
24
|
-
"effect": {
|
25
|
-
"includeInternal": false
|
26
|
-
},
|
27
|
-
"keywords": [],
|
10
|
+
"sideEffects": false,
|
28
11
|
"author": "Effect contributors",
|
29
|
-
"
|
30
|
-
|
31
|
-
"devDependencies": {
|
32
|
-
"@types/react": "^18.2.34",
|
33
|
-
"effect": "2.0.0-next.54",
|
34
|
-
"react": "^18.2.0"
|
12
|
+
"dependencies": {
|
13
|
+
"@effect-rx/rx": "^0.13.0"
|
35
14
|
},
|
36
15
|
"peerDependencies": {
|
37
|
-
"effect": "2.0.0-next.
|
16
|
+
"effect": "2.0.0-next.55",
|
38
17
|
"react": "^18"
|
39
18
|
},
|
40
|
-
"
|
41
|
-
|
42
|
-
|
43
|
-
"files": [
|
44
|
-
"src",
|
45
|
-
"dist"
|
46
|
-
],
|
19
|
+
"main": "./dist/cjs/index.js",
|
20
|
+
"module": "./dist/esm/index.js",
|
21
|
+
"types": "./dist/dts/index.d.ts",
|
47
22
|
"exports": {
|
23
|
+
"./package.json": "./package.json",
|
48
24
|
".": {
|
49
|
-
"types": "./dist/
|
50
|
-
"
|
51
|
-
"
|
52
|
-
|
53
|
-
},
|
54
|
-
"./package.json": "./package.json"
|
55
|
-
},
|
56
|
-
"scripts": {
|
57
|
-
"docs": "docgen",
|
58
|
-
"lint": "eslint src/**/*.ts test/**/*.ts",
|
59
|
-
"tc": "tsc --noEmit",
|
60
|
-
"test": "vitest",
|
61
|
-
"coverage": "vitest run --coverage"
|
25
|
+
"types": "./dist/dts/index.d.ts",
|
26
|
+
"import": "./dist/esm/index.js",
|
27
|
+
"default": "./dist/cjs/index.js"
|
28
|
+
}
|
62
29
|
}
|
63
30
|
}
|