From 7013bed037b8c945e7367e613d11972293c1b069 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Valverd=C3=A9?= Date: Tue, 17 Jun 2025 23:01:26 +0200 Subject: [PATCH] Fix --- packages/example/src/routes/tests.tsx | 11 ++++++----- packages/reffuse/src/types/PropertyPath.ts | 7 ++++--- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/packages/example/src/routes/tests.tsx b/packages/example/src/routes/tests.tsx index c673f9e..82ca80b 100644 --- a/packages/example/src/routes/tests.tsx +++ b/packages/example/src/routes/tests.tsx @@ -4,15 +4,16 @@ import { createFileRoute } from "@tanstack/react-router" import { GetRandomValues, makeUuid4 } from "@typed/id" import { Console, Effect, Option } from "effect" import { useEffect, useState } from "react" -import { PropertyPath } from "reffuse/types" interface Node { - readonly value: string - readonly left?: Node - readonly right?: Node + value: string + left?: Leaf + right?: Leaf +} +interface Leaf { + node: Node } -type NodePaths = PropertyPath.Paths const makeUuid = Effect.provide(makeUuid4, GetRandomValues.CryptoRandom) diff --git a/packages/reffuse/src/types/PropertyPath.ts b/packages/reffuse/src/types/PropertyPath.ts index 50e35ed..1cf005f 100644 --- a/packages/reffuse/src/types/PropertyPath.ts +++ b/packages/reffuse/src/types/PropertyPath.ts @@ -17,9 +17,10 @@ export type ArrayPaths = { : never export type ObjectPaths = { - [K in keyof T as K extends string | number | symbol ? K : never]: - | [K] - | [K, ...Paths] + [K in keyof T as K extends string | number | symbol ? K : never]-?: + NonNullable extends infer V + ? [K] | [K, ...Paths] + : never } extends infer O ? O[keyof O] : never