Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
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
2 changes: 1 addition & 1 deletion src/routers/__test__/nextRouter.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -182,7 +182,7 @@ describe('NextRouter', () => {
const defaultBirthDate = new Date()
defaultBirthDate.setMilliseconds(0)
const defaultNetWorth = BigInt(0xf8ffffffffffffffffffffffffff2fffn)
const defaultDarkMode: boolean | undefined = true
const defaultDarkMode = true as boolean

const schema = z.object({
search: z.string().optional().catch(undefined),
Expand Down
9 changes: 4 additions & 5 deletions src/zod/routers/inMemory.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,10 @@ import {
useQueryAndPagination as useQueryAndPaginationVanilla,
} from '../../routers/inMemory'
import { zodParser } from '../util'
import { NonNullableRecord } from '../../utils'

export const useQuery = <
TQuery extends NonNullableRecord<TSchemaOutput>,
TSchemaOutput extends Partial<AbstractQuery>,
TQuery extends AbstractQuery,
TSchemaOutput extends Partial<TQuery>,
TSchemaDef extends ZodTypeDef = ZodTypeDef,
TSchemaInput = TSchemaOutput,
>(
Expand All @@ -23,8 +22,8 @@ export const useQuery = <
) => useQueryVanilla(defaultQuery, zodParser(schemaQuery), options)

export const useQueryAndPagination = <
TQuery extends NonNullableRecord<TSchemaOutput>,
TSchemaOutput extends Partial<AbstractQuery>,
TQuery extends AbstractQuery,
TSchemaOutput extends Partial<TQuery>,
TSchemaDef extends ZodTypeDef = ZodTypeDef,
TSchemaInput = TSchemaOutput,
>(
Expand Down
9 changes: 4 additions & 5 deletions src/zod/routers/nextRouter.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,11 @@ import {
useQueryAndPagination as useQueryAndPaginationVanilla,
} from '../../routers/nextRouter'
import { zodParser } from '../util'
import { NonNullableRecord } from '../../utils'
import { RouterWithHistoryOptions } from '../../routers/shared'

export const useQuery = <
TQuery extends NonNullableRecord<TSchemaOutput>,
TSchemaOutput extends Partial<AbstractQuery>,
TQuery extends AbstractQuery,
TSchemaOutput extends Partial<TQuery>,
TSchemaDef extends ZodTypeDef = ZodTypeDef,
TSchemaInput = TSchemaOutput,
>(
Expand All @@ -24,8 +23,8 @@ export const useQuery = <
) => useQueryVanilla(defaultQuery, zodParser(schemaQuery), options)

export const useQueryAndPagination = <
TQuery extends NonNullableRecord<TSchemaOutput>,
TSchemaOutput extends Partial<AbstractQuery>,
TQuery extends AbstractQuery,
TSchemaOutput extends Partial<TQuery>,
TSchemaDef extends ZodTypeDef = ZodTypeDef,
TSchemaInput = TSchemaOutput,
>(
Expand Down
9 changes: 4 additions & 5 deletions src/zod/routers/reactRouter.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,11 @@ import {
useQueryAndPagination as useQueryAndPaginationVanilla,
} from '../../routers/reactRouter'
import { zodParser } from '../util'
import { NonNullableRecord } from '../../utils'
import { RouterWithHistoryOptions } from '../../routers/shared'

export const useQuery = <
TQuery extends NonNullableRecord<TSchemaOutput>,
TSchemaOutput extends Partial<AbstractQuery>,
TQuery extends AbstractQuery,
TSchemaOutput extends Partial<TQuery>,
TSchemaDef extends ZodTypeDef = ZodTypeDef,
TSchemaInput = TSchemaOutput,
>(
Expand All @@ -24,8 +23,8 @@ export const useQuery = <
) => useQueryVanilla(defaultQuery, zodParser(schemaQuery), options)

export const useQueryAndPagination = <
TQuery extends NonNullableRecord<TSchemaOutput>,
TSchemaOutput extends Partial<AbstractQuery>,
TQuery extends AbstractQuery,
TSchemaOutput extends Partial<TQuery>,
TSchemaDef extends ZodTypeDef = ZodTypeDef,
TSchemaInput = TSchemaOutput,
>(
Expand Down
9 changes: 7 additions & 2 deletions src/zod/util.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,13 @@ import { ZodType, ZodTypeDef } from 'zod'
import { AbstractQuery, ParseQuery } from '../engine/query'

export const zodParser =
<Output extends Partial<AbstractQuery>, Def extends ZodTypeDef, Input>(
schema: ZodType<Output, Def, Input>,
<
Output extends AbstractQuery,
TSchemaOutput extends ReturnType<ParseQuery<Output>>,
TSchemaDef extends ZodTypeDef,
TSchemaInput,
>(
schema: ZodType<TSchemaOutput, TSchemaDef, TSchemaInput>,
): ParseQuery<Output> =>
(q) =>
schema.parse(q)