@reactive-js/react
Advanced tools
Comparing version
import { AsyncEnumeratorLike, AsyncEnumerableLike } from "@reactive-js/async-enumerable"; | ||
import { ObservableLike } from "@reactive-js/observable"; | ||
import { Option } from "@reactive-js/option"; | ||
import { SchedulerLike } from "@reactive-js/scheduler"; | ||
export declare const useObservable: <T>(observable: ObservableLike<T>, scheduler?: SchedulerLike) => T | undefined; | ||
export declare const useAsyncEnumerator: <TReq, T>(enumerator: AsyncEnumeratorLike<TReq, T>, scheduler?: SchedulerLike | undefined) => [T | undefined, (req: TReq) => void]; | ||
export declare const useObservable: <T>(observable: ObservableLike<T>, scheduler?: SchedulerLike) => Option<T>; | ||
export declare const useAsyncEnumerator: <TReq, T>(enumerator: AsyncEnumeratorLike<TReq, T>, scheduler?: SchedulerLike | undefined) => [Option<T>, (req: TReq) => void]; | ||
export declare const useAsyncEnumerable: <TReq, T>(enumerable: AsyncEnumerableLike<TReq, T>, config?: { | ||
scheduler?: SchedulerLike | undefined; | ||
replay?: number | undefined; | ||
}) => AsyncEnumeratorLike<TReq, T> | undefined; | ||
}) => Option<AsyncEnumeratorLike<TReq, T>>; |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
const react_1 = require("react"); | ||
const observable_1 = require("@reactive-js/observable"); | ||
const option_1 = require("@reactive-js/option"); | ||
const pipe_1 = require("@reactive-js/pipe"); | ||
const react_scheduler_1 = require("@reactive-js/react-scheduler"); | ||
const observable_1 = require("@reactive-js/observable"); | ||
const react_1 = require("react"); | ||
class UseObservableObserver { | ||
@@ -21,4 +22,4 @@ constructor(updateState, updateError) { | ||
exports.useObservable = (observable, scheduler = react_scheduler_1.normalPriority) => { | ||
const [state, updateState] = react_1.useState(undefined); | ||
const [error, updateError] = react_1.useState(undefined); | ||
const [state, updateState] = react_1.useState(option_1.none); | ||
const [error, updateError] = react_1.useState(option_1.none); | ||
react_1.useEffect(() => { | ||
@@ -30,3 +31,3 @@ const subscription = subscribeObservable(observable, updateState, updateError, scheduler); | ||
}, [observable, updateState, updateError, scheduler]); | ||
if (error !== undefined) { | ||
if (option_1.isSome(error)) { | ||
const { cause } = error; | ||
@@ -43,3 +44,3 @@ throw cause; | ||
const useResource = (factory) => { | ||
const [resource, updateResource] = react_1.useState(undefined); | ||
const [resource, updateResource] = react_1.useState(option_1.none); | ||
react_1.useEffect(() => { | ||
@@ -55,4 +56,5 @@ const resource = factory(); | ||
exports.useAsyncEnumerable = (enumerable, config = {}) => { | ||
const scheduler = config.scheduler || react_scheduler_1.normalPriority; | ||
const replay = config.replay || 0; | ||
var _a, _b; | ||
const scheduler = (_a = config.scheduler) !== null && _a !== void 0 ? _a : react_scheduler_1.normalPriority; | ||
const replay = (_b = config.replay) !== null && _b !== void 0 ? _b : 0; | ||
const factory = react_1.useCallback(() => enumerable.enumerateAsync(scheduler, replay), [enumerable, scheduler, replay]); | ||
@@ -59,0 +61,0 @@ return useResource(factory); |
import { AsyncEnumeratorLike, AsyncEnumerableLike } from "@reactive-js/async-enumerable"; | ||
import { ObservableLike } from "@reactive-js/observable"; | ||
import { Option } from "@reactive-js/option"; | ||
import { SchedulerLike } from "@reactive-js/scheduler"; | ||
export declare const useObservable: <T>(observable: ObservableLike<T>, scheduler?: SchedulerLike) => T | undefined; | ||
export declare const useAsyncEnumerator: <TReq, T>(enumerator: AsyncEnumeratorLike<TReq, T>, scheduler?: SchedulerLike | undefined) => [T | undefined, (req: TReq) => void]; | ||
export declare const useObservable: <T>(observable: ObservableLike<T>, scheduler?: SchedulerLike) => Option<T>; | ||
export declare const useAsyncEnumerator: <TReq, T>(enumerator: AsyncEnumeratorLike<TReq, T>, scheduler?: SchedulerLike | undefined) => [Option<T>, (req: TReq) => void]; | ||
export declare const useAsyncEnumerable: <TReq, T>(enumerable: AsyncEnumerableLike<TReq, T>, config?: { | ||
scheduler?: SchedulerLike | undefined; | ||
replay?: number | undefined; | ||
}) => AsyncEnumeratorLike<TReq, T> | undefined; | ||
}) => Option<AsyncEnumeratorLike<TReq, T>>; |
@@ -0,5 +1,6 @@ | ||
import { useCallback, useEffect, useState } from "react"; | ||
import { observe, subscribe, subscribeOn, throttle, } from "@reactive-js/observable"; | ||
import { none, isSome } from "@reactive-js/option"; | ||
import { pipe } from "@reactive-js/pipe"; | ||
import { normalPriority } from "@reactive-js/react-scheduler"; | ||
import { observe, subscribe, subscribeOn, throttle, } from "@reactive-js/observable"; | ||
import { useCallback, useEffect, useState } from "react"; | ||
class UseObservableObserver { | ||
@@ -19,4 +20,4 @@ constructor(updateState, updateError) { | ||
export const useObservable = (observable, scheduler = normalPriority) => { | ||
const [state, updateState] = useState(undefined); | ||
const [error, updateError] = useState(undefined); | ||
const [state, updateState] = useState(none); | ||
const [error, updateError] = useState(none); | ||
useEffect(() => { | ||
@@ -28,3 +29,3 @@ const subscription = subscribeObservable(observable, updateState, updateError, scheduler); | ||
}, [observable, updateState, updateError, scheduler]); | ||
if (error !== undefined) { | ||
if (isSome(error)) { | ||
const { cause } = error; | ||
@@ -41,3 +42,3 @@ throw cause; | ||
const useResource = (factory) => { | ||
const [resource, updateResource] = useState(undefined); | ||
const [resource, updateResource] = useState(none); | ||
useEffect(() => { | ||
@@ -53,4 +54,5 @@ const resource = factory(); | ||
export const useAsyncEnumerable = (enumerable, config = {}) => { | ||
const scheduler = config.scheduler || normalPriority; | ||
const replay = config.replay || 0; | ||
var _a, _b; | ||
const scheduler = (_a = config.scheduler) !== null && _a !== void 0 ? _a : normalPriority; | ||
const replay = (_b = config.replay) !== null && _b !== void 0 ? _b : 0; | ||
const factory = useCallback(() => enumerable.enumerateAsync(scheduler, replay), [enumerable, scheduler, replay]); | ||
@@ -57,0 +59,0 @@ return useResource(factory); |
import { AsyncEnumeratorLike, AsyncEnumerableLike } from "@reactive-js/async-enumerable"; | ||
import { ObservableLike } from "@reactive-js/observable"; | ||
import { Option } from "@reactive-js/option"; | ||
import { SchedulerLike } from "@reactive-js/scheduler"; | ||
export declare const useObservable: <T>(observable: ObservableLike<T>, scheduler?: SchedulerLike) => T | undefined; | ||
export declare const useAsyncEnumerator: <TReq, T>(enumerator: AsyncEnumeratorLike<TReq, T>, scheduler?: SchedulerLike | undefined) => [T | undefined, (req: TReq) => void]; | ||
export declare const useObservable: <T>(observable: ObservableLike<T>, scheduler?: SchedulerLike) => Option<T>; | ||
export declare const useAsyncEnumerator: <TReq, T>(enumerator: AsyncEnumeratorLike<TReq, T>, scheduler?: SchedulerLike | undefined) => [Option<T>, (req: TReq) => void]; | ||
export declare const useAsyncEnumerable: <TReq, T>(enumerable: AsyncEnumerableLike<TReq, T>, config?: { | ||
scheduler?: SchedulerLike | undefined; | ||
replay?: number | undefined; | ||
}) => AsyncEnumeratorLike<TReq, T> | undefined; | ||
}) => Option<AsyncEnumeratorLike<TReq, T>>; | ||
//# sourceMappingURL=index.d.ts.map |
{ | ||
"name": "@reactive-js/react", | ||
"version": "0.0.33", | ||
"version": "0.0.34", | ||
"main": "dist/cjs/index.js", | ||
@@ -41,8 +41,9 @@ "module": "dist/esm5/index.js", | ||
"dependencies": { | ||
"@reactive-js/async-enumerable": "^0.0.33", | ||
"@reactive-js/disposable": "^0.0.33", | ||
"@reactive-js/observable": "^0.0.33", | ||
"@reactive-js/pipe": "^0.0.33", | ||
"@reactive-js/react-scheduler": "^0.0.33", | ||
"@reactive-js/scheduler": "^0.0.33", | ||
"@reactive-js/async-enumerable": "^0.0.34", | ||
"@reactive-js/disposable": "^0.0.34", | ||
"@reactive-js/observable": "^0.0.34", | ||
"@reactive-js/option": "^0.0.34", | ||
"@reactive-js/pipe": "^0.0.34", | ||
"@reactive-js/react-scheduler": "^0.0.34", | ||
"@reactive-js/scheduler": "^0.0.34", | ||
"react": "^16.11.0" | ||
@@ -63,3 +64,3 @@ }, | ||
}, | ||
"gitHead": "1c5eece990f7e48fce3f8510f74a5204fc69c4b5" | ||
"gitHead": "057b4a00c7069f12169d6f8a406d140769c1a349" | ||
} |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
15444
3.58%145
5.07%8
14.29%+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
Updated