From 74b99bbee1030215d0ebbbfc6deadeaea032352e Mon Sep 17 00:00:00 2001 From: avallete Date: Wed, 13 Nov 2024 10:49:43 +0100 Subject: [PATCH] fix(types): inference for default any schema --- src/select-query-parser/result.ts | 12 +++--------- test/select-query-parser/default-inference-d.ts | 16 ++++++++++++++++ 2 files changed, 19 insertions(+), 9 deletions(-) diff --git a/src/select-query-parser/result.ts b/src/select-query-parser/result.ts index 41928ced..4af7d05e 100644 --- a/src/select-query-parser/result.ts +++ b/src/select-query-parser/result.ts @@ -78,15 +78,9 @@ type ProcessFieldNodeWithoutSchema = IsNonEmptyArray Node['children'] > extends true ? { - [K in Node['name']]: Node['children'] extends Ast.StarNode[] - ? any[] - : Node['children'] extends Ast.FieldNode[] - ? { - [P in Node['children'][number] as GetFieldNodeResultName

]: P['castType'] extends PostgreSQLTypes - ? TypeScriptTypes - : any - }[] - : any[] + [K in GetFieldNodeResultName]: Node['children'] extends Ast.Node[] + ? ProcessNodesWithoutSchema[] + : ProcessSimpleFieldWithoutSchema } : ProcessSimpleFieldWithoutSchema diff --git a/test/select-query-parser/default-inference-d.ts b/test/select-query-parser/default-inference-d.ts index 98b2ba95..3ca463b5 100644 --- a/test/select-query-parser/default-inference-d.ts +++ b/test/select-query-parser/default-inference-d.ts @@ -35,6 +35,22 @@ const REST_URL = 'http://localhost:3000' } expectType>(true) } +// embeding renaming +{ + const postgrest = new PostgrestClient(REST_URL) + const { data } = await postgrest + .from('projects') + .select('status,service:services(service_api_keys(*))') + .single() + let result: Exclude + let expected: { + status: any + service: { + service_api_keys: any[] + }[] + } + expectType>(true) +} // spread operator with stars should return any { const postgrest = new PostgrestClient(REST_URL)