Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 5 additions & 3 deletions internal/printer/print-to-tsx.go
Original file line number Diff line number Diff line change
Expand Up @@ -387,19 +387,21 @@ func renderTsx(p *printer, n *Node, o *TSXOptions) {
propsIdent := props.Ident
paramsIdent := ""
if hasGetStaticPaths {
paramsIdent = "ASTRO__Get<ASTRO__InferredGetStaticPath, 'params'>"
paramsIdent = "ASTRO__STRINGIFY_PARAMS<ASTRO__Get<ASTRO__InferredGetStaticPath, 'params'>>"
if propsIdent == "Record<string, any>" {
propsIdent = "ASTRO__MergeUnion<ASTRO__Get<ASTRO__InferredGetStaticPath, 'props'>>"
}
}

p.print(fmt.Sprintf("export default function %s%s(_props: %s%s): any {}\n", componentName, props.Statement, propsIdent, props.Generics))
if hasGetStaticPaths {
p.printf(`type ASTRO__ArrayElement<ArrayType extends readonly unknown[]> = ArrayType extends readonly (infer ElementType)[] ? ElementType : never;
p.println(`type ASTRO__ArrayElement<ArrayType extends readonly unknown[]> = ArrayType extends readonly (infer ElementType)[] ? ElementType : never;
type ASTRO__Flattened<T> = T extends Array<infer U> ? ASTRO__Flattened<U> : T;
type ASTRO__InferredGetStaticPath = ASTRO__Flattened<ASTRO__ArrayElement<Awaited<ReturnType<typeof getStaticPaths>>>>;
type ASTRO__MergeUnion<T, K extends PropertyKey = T extends unknown ? keyof T : never> = T extends unknown ? T & { [P in Exclude<K, keyof T>]?: never } extends infer O ? { [P in keyof O]: O[P] } : never : never;
type ASTRO__Get<T, K> = T extends undefined ? undefined : K extends keyof T ? T[K] : never;%s`, "\n")
type ASTRO__STRINGIFY_VALUE<T> = Extract<T, string | undefined> | T extends number ? string : never
type ASTRO__STRINGIFY_PARAMS<T> = T extends Record<string, any> ? { [K in keyof T]: ASTRO__STRINGIFY_VALUE<T[K]> } : T;
type ASTRO__Get<T, K> = T extends undefined ? undefined : K extends keyof T ? T[K] : never;`)
}

if propsIdent != "Record<string, any>" {
Expand Down