@effect-rx/rx-react 0.11.2 → 0.12.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/declarations/src/index.d.ts +2 -8
- package/dist/declarations/src/index.d.ts.map +1 -1
- package/dist/effect-rx-rx-react.cjs.dev.js +7 -14
- package/dist/effect-rx-rx-react.cjs.prod.js +7 -14
- package/dist/effect-rx-rx-react.esm.js +7 -14
- package/package.json +2 -2
- package/src/index.ts +10 -22
@@ -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
|
@@ -1 +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;
|
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;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"}
|
@@ -171,23 +171,20 @@ const useRx = rx => {
|
|
171
171
|
};
|
172
172
|
const suspenseRx = /*#__PURE__*/Rx__namespace.family(rx => Rx__namespace.readable(get => {
|
173
173
|
const result = get(rx);
|
174
|
-
|
175
|
-
if (value._tag === "Initial") {
|
174
|
+
if (result._tag === "Initial") {
|
176
175
|
return {
|
177
176
|
_tag: "Suspended",
|
178
177
|
promise: new Promise(resolve => get.addFinalizer(resolve))
|
179
178
|
};
|
180
179
|
}
|
181
|
-
const isWaiting = Result__namespace.isWaiting(result);
|
182
180
|
return {
|
183
181
|
_tag: "Value",
|
184
|
-
|
185
|
-
value
|
182
|
+
value: result
|
186
183
|
};
|
187
184
|
}));
|
188
185
|
const suspenseRxWaiting = /*#__PURE__*/Rx__namespace.family(rx => Rx__namespace.readable(get => {
|
189
186
|
const result = get(rx);
|
190
|
-
if (result.
|
187
|
+
if (result.waiting || result._tag === "Initial") {
|
191
188
|
return {
|
192
189
|
_tag: "Suspended",
|
193
190
|
promise: new Promise(resolve => get.addFinalizer(resolve))
|
@@ -195,7 +192,6 @@ const suspenseRxWaiting = /*#__PURE__*/Rx__namespace.family(rx => Rx__namespace.
|
|
195
192
|
}
|
196
193
|
return {
|
197
194
|
_tag: "Value",
|
198
|
-
isWaiting: false,
|
199
195
|
value: result
|
200
196
|
};
|
201
197
|
}));
|
@@ -222,7 +218,7 @@ const useRxSuspense = (rx, options) => {
|
|
222
218
|
}
|
223
219
|
throw result.promise;
|
224
220
|
}
|
225
|
-
return result;
|
221
|
+
return result.value;
|
226
222
|
};
|
227
223
|
|
228
224
|
/**
|
@@ -231,13 +227,10 @@ const useRxSuspense = (rx, options) => {
|
|
231
227
|
*/
|
232
228
|
const useRxSuspenseSuccess = (rx, options) => {
|
233
229
|
const result = useRxSuspense(rx, options);
|
234
|
-
if (result.
|
235
|
-
throw Cause__namespace.squash(result.
|
230
|
+
if (result._tag === "Failure") {
|
231
|
+
throw Cause__namespace.squash(result.cause);
|
236
232
|
}
|
237
|
-
return
|
238
|
-
isWaiting: result.isWaiting,
|
239
|
-
value: result.value.value
|
240
|
-
};
|
233
|
+
return result;
|
241
234
|
};
|
242
235
|
|
243
236
|
/**
|
@@ -171,23 +171,20 @@ const useRx = rx => {
|
|
171
171
|
};
|
172
172
|
const suspenseRx = /*#__PURE__*/Rx__namespace.family(rx => Rx__namespace.readable(get => {
|
173
173
|
const result = get(rx);
|
174
|
-
|
175
|
-
if (value._tag === "Initial") {
|
174
|
+
if (result._tag === "Initial") {
|
176
175
|
return {
|
177
176
|
_tag: "Suspended",
|
178
177
|
promise: new Promise(resolve => get.addFinalizer(resolve))
|
179
178
|
};
|
180
179
|
}
|
181
|
-
const isWaiting = Result__namespace.isWaiting(result);
|
182
180
|
return {
|
183
181
|
_tag: "Value",
|
184
|
-
|
185
|
-
value
|
182
|
+
value: result
|
186
183
|
};
|
187
184
|
}));
|
188
185
|
const suspenseRxWaiting = /*#__PURE__*/Rx__namespace.family(rx => Rx__namespace.readable(get => {
|
189
186
|
const result = get(rx);
|
190
|
-
if (result.
|
187
|
+
if (result.waiting || result._tag === "Initial") {
|
191
188
|
return {
|
192
189
|
_tag: "Suspended",
|
193
190
|
promise: new Promise(resolve => get.addFinalizer(resolve))
|
@@ -195,7 +192,6 @@ const suspenseRxWaiting = /*#__PURE__*/Rx__namespace.family(rx => Rx__namespace.
|
|
195
192
|
}
|
196
193
|
return {
|
197
194
|
_tag: "Value",
|
198
|
-
isWaiting: false,
|
199
195
|
value: result
|
200
196
|
};
|
201
197
|
}));
|
@@ -222,7 +218,7 @@ const useRxSuspense = (rx, options) => {
|
|
222
218
|
}
|
223
219
|
throw result.promise;
|
224
220
|
}
|
225
|
-
return result;
|
221
|
+
return result.value;
|
226
222
|
};
|
227
223
|
|
228
224
|
/**
|
@@ -231,13 +227,10 @@ const useRxSuspense = (rx, options) => {
|
|
231
227
|
*/
|
232
228
|
const useRxSuspenseSuccess = (rx, options) => {
|
233
229
|
const result = useRxSuspense(rx, options);
|
234
|
-
if (result.
|
235
|
-
throw Cause__namespace.squash(result.
|
230
|
+
if (result._tag === "Failure") {
|
231
|
+
throw Cause__namespace.squash(result.cause);
|
236
232
|
}
|
237
|
-
return
|
238
|
-
isWaiting: result.isWaiting,
|
239
|
-
value: result.value.value
|
240
|
-
};
|
233
|
+
return result;
|
241
234
|
};
|
242
235
|
|
243
236
|
/**
|
@@ -146,23 +146,20 @@ const useRx = rx => {
|
|
146
146
|
};
|
147
147
|
const suspenseRx = /*#__PURE__*/Rx.family(rx => Rx.readable(get => {
|
148
148
|
const result = get(rx);
|
149
|
-
|
150
|
-
if (value._tag === "Initial") {
|
149
|
+
if (result._tag === "Initial") {
|
151
150
|
return {
|
152
151
|
_tag: "Suspended",
|
153
152
|
promise: new Promise(resolve => get.addFinalizer(resolve))
|
154
153
|
};
|
155
154
|
}
|
156
|
-
const isWaiting = Result.isWaiting(result);
|
157
155
|
return {
|
158
156
|
_tag: "Value",
|
159
|
-
|
160
|
-
value
|
157
|
+
value: result
|
161
158
|
};
|
162
159
|
}));
|
163
160
|
const suspenseRxWaiting = /*#__PURE__*/Rx.family(rx => Rx.readable(get => {
|
164
161
|
const result = get(rx);
|
165
|
-
if (result.
|
162
|
+
if (result.waiting || result._tag === "Initial") {
|
166
163
|
return {
|
167
164
|
_tag: "Suspended",
|
168
165
|
promise: new Promise(resolve => get.addFinalizer(resolve))
|
@@ -170,7 +167,6 @@ const suspenseRxWaiting = /*#__PURE__*/Rx.family(rx => Rx.readable(get => {
|
|
170
167
|
}
|
171
168
|
return {
|
172
169
|
_tag: "Value",
|
173
|
-
isWaiting: false,
|
174
170
|
value: result
|
175
171
|
};
|
176
172
|
}));
|
@@ -197,7 +193,7 @@ const useRxSuspense = (rx, options) => {
|
|
197
193
|
}
|
198
194
|
throw result.promise;
|
199
195
|
}
|
200
|
-
return result;
|
196
|
+
return result.value;
|
201
197
|
};
|
202
198
|
|
203
199
|
/**
|
@@ -206,13 +202,10 @@ const useRxSuspense = (rx, options) => {
|
|
206
202
|
*/
|
207
203
|
const useRxSuspenseSuccess = (rx, options) => {
|
208
204
|
const result = useRxSuspense(rx, options);
|
209
|
-
if (result.
|
210
|
-
throw Cause.squash(result.
|
205
|
+
if (result._tag === "Failure") {
|
206
|
+
throw Cause.squash(result.cause);
|
211
207
|
}
|
212
|
-
return
|
213
|
-
isWaiting: result.isWaiting,
|
214
|
-
value: result.value.value
|
215
|
-
};
|
208
|
+
return result;
|
216
209
|
};
|
217
210
|
|
218
211
|
/**
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@effect-rx/rx-react",
|
3
|
-
"version": "0.
|
3
|
+
"version": "0.12.0",
|
4
4
|
"description": "Reactive toolkit for Effect",
|
5
5
|
"main": "dist/effect-rx-rx-react.cjs.js",
|
6
6
|
"module": "dist/effect-rx-rx-react.esm.js",
|
@@ -38,7 +38,7 @@
|
|
38
38
|
"react": "^18"
|
39
39
|
},
|
40
40
|
"dependencies": {
|
41
|
-
"@effect-rx/rx": "^0.
|
41
|
+
"@effect-rx/rx": "^0.12.0"
|
42
42
|
},
|
43
43
|
"files": [
|
44
44
|
"src",
|
package/src/index.ts
CHANGED
@@ -198,35 +198,32 @@ type SuspenseResult<E, A> =
|
|
198
198
|
}
|
199
199
|
| {
|
200
200
|
readonly _tag: "Value"
|
201
|
-
readonly isWaiting: boolean
|
202
201
|
readonly value: Result.Success<E, A> | Result.Failure<E, A>
|
203
202
|
}
|
204
203
|
|
205
204
|
const suspenseRx = Rx.family((rx: Rx.Rx<Result.Result<any, any>>) =>
|
206
205
|
Rx.readable((get): SuspenseResult<any, any> => {
|
207
206
|
const result = get(rx)
|
208
|
-
|
209
|
-
if (value._tag === "Initial") {
|
207
|
+
if (result._tag === "Initial") {
|
210
208
|
return {
|
211
209
|
_tag: "Suspended",
|
212
210
|
promise: new Promise<void>((resolve) => get.addFinalizer(resolve))
|
213
211
|
} as const
|
214
212
|
}
|
215
|
-
|
216
|
-
return { _tag: "Value", isWaiting, value } as const
|
213
|
+
return { _tag: "Value", value: result } as const
|
217
214
|
})
|
218
215
|
)
|
219
216
|
|
220
217
|
const suspenseRxWaiting = Rx.family((rx: Rx.Rx<Result.Result<any, any>>) =>
|
221
218
|
Rx.readable((get): SuspenseResult<any, any> => {
|
222
219
|
const result = get(rx)
|
223
|
-
if (result.
|
220
|
+
if (result.waiting || result._tag === "Initial") {
|
224
221
|
return {
|
225
222
|
_tag: "Suspended",
|
226
223
|
promise: new Promise<void>((resolve) => get.addFinalizer(resolve))
|
227
224
|
} as const
|
228
225
|
}
|
229
|
-
return { _tag: "Value",
|
226
|
+
return { _tag: "Value", value: result } as const
|
230
227
|
})
|
231
228
|
)
|
232
229
|
|
@@ -239,10 +236,7 @@ const suspenseMounts = globalValue("@effect-rx/rx-react/suspenseMounts", () => n
|
|
239
236
|
export const useRxSuspense = <E, A>(
|
240
237
|
rx: Rx.Rx<Result.Result<E, A>>,
|
241
238
|
options?: { readonly suspendOnWaiting?: boolean }
|
242
|
-
): {
|
243
|
-
readonly isWaiting: boolean
|
244
|
-
readonly value: Result.Success<E, A> | Result.Failure<E, A>
|
245
|
-
} => {
|
239
|
+
): Result.Success<E, A> | Result.Failure<E, A> => {
|
246
240
|
const registry = React.useContext(RegistryContext)
|
247
241
|
const resultRx = React.useMemo(
|
248
242
|
() => (options?.suspendOnWaiting ? suspenseRxWaiting(rx) : suspenseRx(rx)),
|
@@ -263,7 +257,7 @@ export const useRxSuspense = <E, A>(
|
|
263
257
|
throw result.promise
|
264
258
|
}
|
265
259
|
|
266
|
-
return result
|
260
|
+
return result.value
|
267
261
|
}
|
268
262
|
|
269
263
|
/**
|
@@ -273,18 +267,12 @@ export const useRxSuspense = <E, A>(
|
|
273
267
|
export const useRxSuspenseSuccess = <E, A>(
|
274
268
|
rx: Rx.Rx<Result.Result<E, A>>,
|
275
269
|
options?: { readonly suspendOnWaiting?: boolean }
|
276
|
-
): {
|
277
|
-
readonly isWaiting: boolean
|
278
|
-
readonly value: A
|
279
|
-
} => {
|
270
|
+
): Result.Success<E, A> => {
|
280
271
|
const result = useRxSuspense(rx, options)
|
281
|
-
if (result.
|
282
|
-
throw Cause.squash(result.
|
283
|
-
}
|
284
|
-
return {
|
285
|
-
isWaiting: result.isWaiting,
|
286
|
-
value: result.value.value
|
272
|
+
if (result._tag === "Failure") {
|
273
|
+
throw Cause.squash(result.cause)
|
287
274
|
}
|
275
|
+
return result
|
288
276
|
}
|
289
277
|
|
290
278
|
/**
|