Skip to content

Commit 20a6654

Browse files
author
devgioele
committed
improve router types
1 parent f357484 commit 20a6654

4 files changed

Lines changed: 17 additions & 22 deletions

File tree

src/zod/routers/inMemory.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@ import {
66
useQueryAndPagination as useQueryAndPaginationVanilla,
77
} from '../../routers/inMemory'
88
import { zodParser } from '../util'
9+
import { NonNullableRecord } from '../../utils'
910

1011
export const useQuery = <
11-
TQuery extends AbstractQuery,
12-
// TODO: `TSchemaOutput` should not just extend `Partial<TQuery>`, but be exactly `Partial<TQuery>`, with not additional keys
13-
TSchemaOutput extends Partial<TQuery> = Partial<TQuery>,
12+
TQuery extends NonNullableRecord<TSchemaOutput>,
13+
TSchemaOutput extends Partial<AbstractQuery>,
1414
TSchemaDef extends ZodTypeDef = ZodTypeDef,
1515
TSchemaInput = TSchemaOutput
1616
>(
@@ -19,8 +19,8 @@ export const useQuery = <
1919
) => useQueryVanilla(defaultQuery, zodParser(schemaQuery))
2020

2121
export const useQueryAndPagination = <
22-
TQuery extends AbstractQuery,
23-
TSchemaOutput extends Partial<TQuery> = Partial<TQuery>,
22+
TQuery extends NonNullableRecord<TSchemaOutput>,
23+
TSchemaOutput extends Partial<AbstractQuery>,
2424
TSchemaDef extends ZodTypeDef = ZodTypeDef,
2525
TSchemaInput = TSchemaOutput
2626
>(

src/zod/routers/nextRouter.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@ import {
66
useQueryAndPagination as useQueryAndPaginationVanilla,
77
} from '../../routers/nextRouter'
88
import { zodParser } from '../util'
9+
import { NonNullableRecord } from '../../utils'
910

1011
export const useQuery = <
11-
TQuery extends AbstractQuery,
12-
// TODO: `TSchemaOutput` should not just extend `Partial<TQuery>`, but be exactly `Partial<TQuery>`, with not additional keys
13-
TSchemaOutput extends Partial<TQuery> = Partial<TQuery>,
12+
TQuery extends NonNullableRecord<TSchemaOutput>,
13+
TSchemaOutput extends Partial<AbstractQuery>,
1414
TSchemaDef extends ZodTypeDef = ZodTypeDef,
1515
TSchemaInput = TSchemaOutput
1616
>(
@@ -19,8 +19,8 @@ export const useQuery = <
1919
) => useQueryVanilla(defaultQuery, zodParser(schemaQuery))
2020

2121
export const useQueryAndPagination = <
22-
TQuery extends AbstractQuery,
23-
TSchemaOutput extends Partial<TQuery> = Partial<TQuery>,
22+
TQuery extends NonNullableRecord<TSchemaOutput>,
23+
TSchemaOutput extends Partial<AbstractQuery>,
2424
TSchemaDef extends ZodTypeDef = ZodTypeDef,
2525
TSchemaInput = TSchemaOutput
2626
>(

src/zod/routers/reactRouter.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@ import {
66
useQueryAndPagination as useQueryAndPaginationVanilla,
77
} from '../../routers/reactRouter'
88
import { zodParser } from '../util'
9+
import { NonNullableRecord } from '../../utils'
910

1011
export const useQuery = <
11-
TQuery extends AbstractQuery,
12-
// TODO: `TSchemaOutput` should not just extend `Partial<TQuery>`, but be exactly `Partial<TQuery>`, with not additional keys
13-
TSchemaOutput extends Partial<TQuery> = Partial<TQuery>,
12+
TQuery extends NonNullableRecord<TSchemaOutput>,
13+
TSchemaOutput extends Partial<AbstractQuery>,
1414
TSchemaDef extends ZodTypeDef = ZodTypeDef,
1515
TSchemaInput = TSchemaOutput
1616
>(
@@ -19,8 +19,8 @@ export const useQuery = <
1919
) => useQueryVanilla(defaultQuery, zodParser(schemaQuery))
2020

2121
export const useQueryAndPagination = <
22-
TQuery extends AbstractQuery,
23-
TSchemaOutput extends Partial<TQuery> = Partial<TQuery>,
22+
TQuery extends NonNullableRecord<TSchemaOutput>,
23+
TSchemaOutput extends Partial<AbstractQuery>,
2424
TSchemaDef extends ZodTypeDef = ZodTypeDef,
2525
TSchemaInput = TSchemaOutput
2626
>(

src/zod/util.ts

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,8 @@ import { ZodType, ZodTypeDef } from 'zod'
22
import { AbstractQuery, ParseQuery } from '../engine/query'
33

44
export const zodParser =
5-
<
6-
TQuery extends AbstractQuery,
7-
Output extends Partial<TQuery>,
8-
Def extends ZodTypeDef,
9-
Input
10-
>(
5+
<Output extends Partial<AbstractQuery>, Def extends ZodTypeDef, Input>(
116
schema: ZodType<Output, Def, Input>
12-
): ParseQuery<TQuery> =>
7+
): ParseQuery<Output> =>
138
(q) =>
149
schema.parse(q)

0 commit comments

Comments
 (0)