Skip to content

Commit 21463da

Browse files
committed
improve types
1 parent 64ba7f4 commit 21463da

File tree

2 files changed

+10
-2
lines changed

2 files changed

+10
-2
lines changed

packages/hypergraph-react/src/internal/use-entity-public.tsx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,11 @@ export const parseResult = <S extends Schema.Schema.AnyNoContext>(queryData: Ent
185185
const ast = type.ast as SchemaAST.TypeLiteral;
186186

187187
for (const prop of ast.propertySignatures) {
188-
const propType = prop.isOptional ? prop.type.types[0] : prop.type;
188+
const propType =
189+
prop.isOptional && SchemaAST.isUnion(prop.type)
190+
? (prop.type.types.find((member) => !SchemaAST.isUndefinedKeyword(member)) ?? prop.type)
191+
: prop.type;
192+
189193
const result = SchemaAST.getAnnotation<string>(Constants.PropertyIdSymbol)(propType);
190194

191195
if (Option.isSome(result)) {

packages/hypergraph-react/src/internal/use-query-public.tsx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -200,7 +200,11 @@ export const parseResult = <S extends Schema.Schema.AnyNoContext>(queryData: Ent
200200
const ast = type.ast as SchemaAST.TypeLiteral;
201201

202202
for (const prop of ast.propertySignatures) {
203-
const propType = prop.isOptional ? prop.type.types[0] : prop.type;
203+
const propType =
204+
prop.isOptional && SchemaAST.isUnion(prop.type)
205+
? (prop.type.types.find((member) => !SchemaAST.isUndefinedKeyword(member)) ?? prop.type)
206+
: prop.type;
207+
204208
const result = SchemaAST.getAnnotation<string>(Constants.PropertyIdSymbol)(propType);
205209

206210
if (Option.isSome(result)) {

0 commit comments

Comments
 (0)