@@ -14,7 +14,7 @@ export const useMemo: {
|
|||||||
factory: () => Effect.Effect<A, E, R>,
|
factory: () => Effect.Effect<A, E, R>,
|
||||||
deps: React.DependencyList,
|
deps: React.DependencyList,
|
||||||
): Effect.Effect<A, E, R>
|
): Effect.Effect<A, E, R>
|
||||||
} = Effect.fnUntraced(function* <A, E, R>(
|
} = Effect.fn("useMemo")(function* <A, E, R>(
|
||||||
factory: () => Effect.Effect<A, E, R>,
|
factory: () => Effect.Effect<A, E, R>,
|
||||||
deps: React.DependencyList,
|
deps: React.DependencyList,
|
||||||
) {
|
) {
|
||||||
@@ -24,7 +24,7 @@ export const useMemo: {
|
|||||||
|
|
||||||
export const useOnce: {
|
export const useOnce: {
|
||||||
<A, E, R>(factory: () => Effect.Effect<A, E, R>): Effect.Effect<A, E, R>
|
<A, E, R>(factory: () => Effect.Effect<A, E, R>): Effect.Effect<A, E, R>
|
||||||
} = Effect.fnUntraced(function* <A, E, R>(
|
} = Effect.fn("useOnce")(function* <A, E, R>(
|
||||||
factory: () => Effect.Effect<A, E, R>
|
factory: () => Effect.Effect<A, E, R>
|
||||||
) {
|
) {
|
||||||
return yield* useMemo(factory, [])
|
return yield* useMemo(factory, [])
|
||||||
@@ -34,7 +34,7 @@ export const useMemoLayer: {
|
|||||||
<ROut, E, RIn>(
|
<ROut, E, RIn>(
|
||||||
layer: Layer.Layer<ROut, E, RIn>
|
layer: Layer.Layer<ROut, E, RIn>
|
||||||
): Effect.Effect<Context.Context<ROut>, E, RIn>
|
): Effect.Effect<Context.Context<ROut>, E, RIn>
|
||||||
} = Effect.fnUntraced(function* <ROut, E, RIn>(
|
} = Effect.fn("useMemoLayer")(function* <ROut, E, RIn>(
|
||||||
layer: Layer.Layer<ROut, E, RIn>
|
layer: Layer.Layer<ROut, E, RIn>
|
||||||
) {
|
) {
|
||||||
return yield* useMemo(() => Effect.provide(Effect.context<ROut>(), layer), [layer])
|
return yield* useMemo(() => Effect.provide(Effect.context<ROut>(), layer), [layer])
|
||||||
@@ -46,7 +46,7 @@ export const useCallbackSync: {
|
|||||||
callback: (...args: Args) => Effect.Effect<A, E, R>,
|
callback: (...args: Args) => Effect.Effect<A, E, R>,
|
||||||
deps: React.DependencyList,
|
deps: React.DependencyList,
|
||||||
): Effect.Effect<(...args: Args) => A, never, R>
|
): Effect.Effect<(...args: Args) => A, never, R>
|
||||||
} = Effect.fnUntraced(function* <Args extends unknown[], A, E, R>(
|
} = Effect.fn("useCallbackSync")(function* <Args extends unknown[], A, E, R>(
|
||||||
callback: (...args: Args) => Effect.Effect<A, E, R>,
|
callback: (...args: Args) => Effect.Effect<A, E, R>,
|
||||||
deps: React.DependencyList,
|
deps: React.DependencyList,
|
||||||
) {
|
) {
|
||||||
@@ -59,7 +59,7 @@ export const useCallbackPromise: {
|
|||||||
callback: (...args: Args) => Effect.Effect<A, E, R>,
|
callback: (...args: Args) => Effect.Effect<A, E, R>,
|
||||||
deps: React.DependencyList,
|
deps: React.DependencyList,
|
||||||
): Effect.Effect<(...args: Args) => Promise<A>, never, R>
|
): Effect.Effect<(...args: Args) => Promise<A>, never, R>
|
||||||
} = Effect.fnUntraced(function* <Args extends unknown[], A, E, R>(
|
} = Effect.fn("useCallbackPromise")(function* <Args extends unknown[], A, E, R>(
|
||||||
callback: (...args: Args) => Effect.Effect<A, E, R>,
|
callback: (...args: Args) => Effect.Effect<A, E, R>,
|
||||||
deps: React.DependencyList,
|
deps: React.DependencyList,
|
||||||
) {
|
) {
|
||||||
@@ -74,7 +74,7 @@ export const useEffect: {
|
|||||||
deps?: React.DependencyList,
|
deps?: React.DependencyList,
|
||||||
options?: ScopeOptions,
|
options?: ScopeOptions,
|
||||||
): Effect.Effect<void, never, Exclude<R, Scope.Scope>>
|
): Effect.Effect<void, never, Exclude<R, Scope.Scope>>
|
||||||
} = Effect.fnUntraced(function* <E, R>(
|
} = Effect.fn("useEffect")(function* <E, R>(
|
||||||
effect: () => Effect.Effect<void, E, R>,
|
effect: () => Effect.Effect<void, E, R>,
|
||||||
deps?: React.DependencyList,
|
deps?: React.DependencyList,
|
||||||
options?: ScopeOptions,
|
options?: ScopeOptions,
|
||||||
@@ -107,7 +107,7 @@ export const useLayoutEffect: {
|
|||||||
deps?: React.DependencyList,
|
deps?: React.DependencyList,
|
||||||
options?: ScopeOptions,
|
options?: ScopeOptions,
|
||||||
): Effect.Effect<void, never, Exclude<R, Scope.Scope>>
|
): Effect.Effect<void, never, Exclude<R, Scope.Scope>>
|
||||||
} = Effect.fnUntraced(function* <E, R>(
|
} = Effect.fn("useLayoutEffect")(function* <E, R>(
|
||||||
effect: () => Effect.Effect<void, E, R>,
|
effect: () => Effect.Effect<void, E, R>,
|
||||||
deps?: React.DependencyList,
|
deps?: React.DependencyList,
|
||||||
options?: ScopeOptions,
|
options?: ScopeOptions,
|
||||||
@@ -140,7 +140,7 @@ export const useFork: {
|
|||||||
deps?: React.DependencyList,
|
deps?: React.DependencyList,
|
||||||
options?: Runtime.RunForkOptions & ScopeOptions,
|
options?: Runtime.RunForkOptions & ScopeOptions,
|
||||||
): Effect.Effect<void, never, Exclude<R, Scope.Scope>>
|
): Effect.Effect<void, never, Exclude<R, Scope.Scope>>
|
||||||
} = Effect.fnUntraced(function* <E, R>(
|
} = Effect.fn("useFork")(function* <E, R>(
|
||||||
effect: () => Effect.Effect<void, E, R>,
|
effect: () => Effect.Effect<void, E, R>,
|
||||||
deps?: React.DependencyList,
|
deps?: React.DependencyList,
|
||||||
options?: Runtime.RunForkOptions & ScopeOptions,
|
options?: Runtime.RunForkOptions & ScopeOptions,
|
||||||
@@ -170,7 +170,7 @@ export const useFork: {
|
|||||||
|
|
||||||
export const useRefFromReactiveValue: {
|
export const useRefFromReactiveValue: {
|
||||||
<A>(value: A): Effect.Effect<SubscriptionRef.SubscriptionRef<A>>
|
<A>(value: A): Effect.Effect<SubscriptionRef.SubscriptionRef<A>>
|
||||||
} = Effect.fnUntraced(function*(value) {
|
} = Effect.fn("useRefFromReactiveValue")(function*(value) {
|
||||||
const ref = yield* useOnce(() => SubscriptionRef.make(value))
|
const ref = yield* useOnce(() => SubscriptionRef.make(value))
|
||||||
yield* useEffect(() => Ref.set(ref, value), [value])
|
yield* useEffect(() => Ref.set(ref, value), [value])
|
||||||
return ref
|
return ref
|
||||||
@@ -180,7 +180,7 @@ export const useSubscribeRefs: {
|
|||||||
<const Refs extends readonly SubscriptionRef.SubscriptionRef<any>[]>(
|
<const Refs extends readonly SubscriptionRef.SubscriptionRef<any>[]>(
|
||||||
...refs: Refs
|
...refs: Refs
|
||||||
): Effect.Effect<{ [K in keyof Refs]: Effect.Effect.Success<Refs[K]> }>
|
): Effect.Effect<{ [K in keyof Refs]: Effect.Effect.Success<Refs[K]> }>
|
||||||
} = Effect.fnUntraced(function* <const Refs extends readonly SubscriptionRef.SubscriptionRef<any>[]>(
|
} = Effect.fn("useSubscribeRefs")(function* <const Refs extends readonly SubscriptionRef.SubscriptionRef<any>[]>(
|
||||||
...refs: Refs
|
...refs: Refs
|
||||||
) {
|
) {
|
||||||
const [reactStateValue, setReactStateValue] = React.useState(yield* useOnce(() =>
|
const [reactStateValue, setReactStateValue] = React.useState(yield* useOnce(() =>
|
||||||
@@ -202,7 +202,7 @@ export const useRefState: {
|
|||||||
<A>(
|
<A>(
|
||||||
ref: SubscriptionRef.SubscriptionRef<A>
|
ref: SubscriptionRef.SubscriptionRef<A>
|
||||||
): Effect.Effect<readonly [A, React.Dispatch<React.SetStateAction<A>>]>
|
): Effect.Effect<readonly [A, React.Dispatch<React.SetStateAction<A>>]>
|
||||||
} = Effect.fnUntraced(function* <A>(ref: SubscriptionRef.SubscriptionRef<A>) {
|
} = Effect.fn("useRefState")(function* <A>(ref: SubscriptionRef.SubscriptionRef<A>) {
|
||||||
const [reactStateValue, setReactStateValue] = React.useState(yield* useOnce(() => ref))
|
const [reactStateValue, setReactStateValue] = React.useState(yield* useOnce(() => ref))
|
||||||
|
|
||||||
yield* useFork(() => Stream.runForEach(
|
yield* useFork(() => Stream.runForEach(
|
||||||
@@ -224,7 +224,7 @@ export const useStreamFromReactiveValues: {
|
|||||||
<const A extends React.DependencyList>(
|
<const A extends React.DependencyList>(
|
||||||
values: A
|
values: A
|
||||||
): Effect.Effect<Stream.Stream<A>, never, Scope.Scope>
|
): Effect.Effect<Stream.Stream<A>, never, Scope.Scope>
|
||||||
} = Effect.fnUntraced(function* <const A extends React.DependencyList>(values: A) {
|
} = Effect.fn("useStreamFromReactiveValues")(function* <const A extends React.DependencyList>(values: A) {
|
||||||
const { latest, pubsub, stream } = yield* useOnce(() => Effect.Do.pipe(
|
const { latest, pubsub, stream } = yield* useOnce(() => Effect.Do.pipe(
|
||||||
Effect.bind("latest", () => Ref.make(values)),
|
Effect.bind("latest", () => Ref.make(values)),
|
||||||
Effect.bind("pubsub", () => Effect.acquireRelease(PubSub.unbounded<A>(), PubSub.shutdown)),
|
Effect.bind("pubsub", () => Effect.acquireRelease(PubSub.unbounded<A>(), PubSub.shutdown)),
|
||||||
@@ -253,7 +253,7 @@ export const useSubscribeStream: {
|
|||||||
stream: Stream.Stream<A, E, R>,
|
stream: Stream.Stream<A, E, R>,
|
||||||
initialValue: A,
|
initialValue: A,
|
||||||
): Effect.Effect<Option.Some<A>, never, R>
|
): Effect.Effect<Option.Some<A>, never, R>
|
||||||
} = Effect.fnUntraced(function* <A extends NonNullable<unknown>, E, R>(
|
} = Effect.fn("useSubscribeStream")(function* <A extends NonNullable<unknown>, E, R>(
|
||||||
stream: Stream.Stream<A, E, R>,
|
stream: Stream.Stream<A, E, R>,
|
||||||
initialValue?: A,
|
initialValue?: A,
|
||||||
) {
|
) {
|
||||||
|
|||||||
Reference in New Issue
Block a user