0.1.3 #4

Merged
Thilawyn merged 90 commits from next into master 2025-08-23 03:07:28 +02:00
14 changed files with 14 additions and 14 deletions
Showing only changes of commit c158cdef19 - Show all commits

View File

@@ -7,7 +7,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.fn("useCallbackPromise")(function* <Args extends unknown[], A, E, R>( } = Effect.fnUntraced(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,
) { ) {

View File

@@ -7,7 +7,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.fn("useCallbackSync")(function* <Args extends unknown[], A, E, R>( } = Effect.fnUntraced(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,
) { ) {

View File

@@ -9,7 +9,7 @@ export const useContext: {
layer: Layer.Layer<ROut, E, RIn>, layer: Layer.Layer<ROut, E, RIn>,
options?: ScopeOptions, options?: ScopeOptions,
): Effect.Effect<Context.Context<ROut>, E, Exclude<RIn, Scope.Scope>> ): Effect.Effect<Context.Context<ROut>, E, Exclude<RIn, Scope.Scope>>
} = Effect.fn("useContext")(function* <ROut, E, RIn>( } = Effect.fnUntraced(function* <ROut, E, RIn>(
layer: Layer.Layer<ROut, E, RIn>, layer: Layer.Layer<ROut, E, RIn>,
options?: ScopeOptions, options?: ScopeOptions,
) { ) {

View File

@@ -10,7 +10,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.fn("useEffect")(function* <E, R>( } = Effect.fnUntraced(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,

View File

@@ -10,7 +10,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.fn("useFork")(function* <E, R>( } = Effect.fnUntraced(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,

View File

@@ -10,7 +10,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.fn("useLayoutEffect")(function* <E, R>( } = Effect.fnUntraced(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,

View File

@@ -7,7 +7,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.fn("useMemo")(function* <A, E, R>( } = Effect.fnUntraced(function* <A, E, R>(
factory: () => Effect.Effect<A, E, R>, factory: () => Effect.Effect<A, E, R>,
deps: React.DependencyList, deps: React.DependencyList,
) { ) {

View File

@@ -4,7 +4,7 @@ import { useMemo } from "./useMemo.js"
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.fn("useOnce")(function* <A, E, R>( } = Effect.fnUntraced(function* <A, E, R>(
factory: () => Effect.Effect<A, E, R> factory: () => Effect.Effect<A, E, R>
) { ) {
return yield* useMemo(factory, []) return yield* useMemo(factory, [])

View File

@@ -5,7 +5,7 @@ import { useOnce } from "./useOnce.js"
export const useRefFromReactiveValue: { export const useRefFromReactiveValue: {
<A>(value: A): Effect.Effect<SubscriptionRef.SubscriptionRef<A>> <A>(value: A): Effect.Effect<SubscriptionRef.SubscriptionRef<A>>
} = Effect.fn("useRefFromReactiveValue")(function*(value) { } = Effect.fnUntraced(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

View File

@@ -10,7 +10,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.fn("useRefState")(function* <A>(ref: SubscriptionRef.SubscriptionRef<A>) { } = Effect.fnUntraced(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(

View File

@@ -9,7 +9,7 @@ export const useScope: {
deps: React.DependencyList, deps: React.DependencyList,
options?: ScopeOptions, options?: ScopeOptions,
): Effect.Effect<Scope.Scope> ): Effect.Effect<Scope.Scope>
} = Effect.fn("useScope")(function*(deps, options) { } = Effect.fnUntraced(function*(deps, options) {
const runtime = yield* Effect.runtime() const runtime = yield* Effect.runtime()
const [isInitialRun, initialScope] = React.useMemo(() => Runtime.runSync(runtime)(Effect.all([ const [isInitialRun, initialScope] = React.useMemo(() => Runtime.runSync(runtime)(Effect.all([

View File

@@ -8,7 +8,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.fn("useStreamFromReactiveValues")(function* <const A extends React.DependencyList>(values: A) { } = Effect.fnUntraced(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)),

View File

@@ -8,7 +8,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.fn("useSubscribeRefs")(function* <const Refs extends readonly SubscriptionRef.SubscriptionRef<any>[]>( } = Effect.fnUntraced(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(() =>

View File

@@ -11,7 +11,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.fn("useSubscribeStream")(function* <A extends NonNullable<unknown>, E, R>( } = Effect.fnUntraced(function* <A extends NonNullable<unknown>, E, R>(
stream: Stream.Stream<A, E, R>, stream: Stream.Stream<A, E, R>,
initialValue?: A, initialValue?: A,
) { ) {