Fix
Some checks failed
Lint / lint (push) Failing after 11s

This commit is contained in:
Julien Valverdé
2025-01-16 21:59:07 +01:00
parent 4777caa3f5
commit 8cf96298b8

View File

@@ -58,18 +58,20 @@ export function useMergeAll<T extends Array<unknown>>(
return React.useMemo(() => Context.mergeAll(...values), values) return React.useMemo(() => Context.mergeAll(...values), values)
} }
export function useMergeAllLayers< /** TODO: find a way to make 'contexts' a NonEmptyArray */
const Contexts extends Array.NonEmptyReadonlyArray<ReffuseContext<any>> export function useMergeAllLayers<T extends Array<unknown>>(
>( ...contexts: [...{ [K in keyof T]: ReffuseContext<T[K]> }]
...contexts: Contexts ): Layer.Layer<T[number]> {
): Layer.Layer<{ [K in keyof Contexts]: R<Contexts[K]> }[number]> { const values = Array.map(
const values = Array.map(contexts, v => React.use(v.Context)) contexts as Array.NonEmptyArray<ReffuseContext<T[number]>>,
v => React.use(v.Context),
)
return React.useMemo(() => Layer.mergeAll( return React.useMemo(() => Layer.mergeAll(
...Array.map(values, context => Layer.effectContext(Effect.succeed(context))) ...Array.map(values, context => Layer.effectContext(Effect.succeed(context)))
) as Layer.Layer<any>, values) ) as Layer.Layer<any>, values)
} }
declare const context1: ReffuseContext<never> // declare const context1: ReffuseContext<never>
declare const context2: ReffuseContext<"prout"> // declare const context2: ReffuseContext<"prout">
const res = useMergeAll(context1, context2) // const res = useMergeAllLayers(context1, context2)