Compare commits

..

2 Commits

Author SHA1 Message Date
27bbedda82 Update dependency @effect/language-service to ^0.54.0
All checks were successful
Lint / lint (push) Successful in 11s
Test build / test-build (pull_request) Successful in 16s
2025-11-04 01:33:03 +01:00
Julien Valverdé
c7a68d8653 Add useRunSync
All checks were successful
Lint / lint (push) Successful in 13s
2025-11-04 00:46:07 +01:00

View File

@@ -578,21 +578,17 @@ export const useReactLayoutEffect: {
React.useLayoutEffect(() => runReactEffect(runtime, f, options), deps) React.useLayoutEffect(() => runReactEffect(runtime, f, options), deps)
}) })
export const useRunSync: { export const useRunSync = <R = never>(): Effect.Effect<
<R = never>(): Effect.Effect<<A, E = never>(effect: Effect.Effect<A, E, R>) => A, never, Scope.Scope | R> <A, E = never>(effect: Effect.Effect<A, E, Scope.Scope | R>) => A,
} = Effect.fnUntraced(function* <Args extends unknown[], A, E, R>( never,
f: (...args: Args) => Effect.Effect<A, E, R>, Scope.Scope | R
deps: React.DependencyList, > => Effect.andThen(Effect.runtime(), Runtime.runSync)
) {
// biome-ignore lint/style/noNonNullAssertion: context initialization
const runtimeRef = React.useRef<Runtime.Runtime<R>>(null!)
runtimeRef.current = yield* Effect.runtime<R>()
Runtime.runSync() export const useRunPromise = <R = never>(): Effect.Effect<
<A, E = never>(effect: Effect.Effect<A, E, Scope.Scope | R>) => Promise<A>,
// biome-ignore lint/correctness/useExhaustiveDependencies: use of React.DependencyList never,
return React.useCallback((...args: Args) => Runtime.runSync(runtimeRef.current)(f(...args)), deps) Scope.Scope | R
}) > => Effect.andThen(Effect.runtime(), context => Runtime.runPromise(context))
export const useCallbackSync: { export const useCallbackSync: {
<Args extends unknown[], A, E, R>( <Args extends unknown[], A, E, R>(