Skip to content

Commit 1db9292

Browse files
author
devgioele
committed
use schema as definition of query
1 parent 5f4ecc2 commit 1db9292

4 files changed

Lines changed: 30 additions & 74 deletions

File tree

src/zod/routers/inMemory.ts

Lines changed: 9 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,21 @@
1-
import { ZodType, ZodTypeDef } from 'zod'
2-
import {
3-
PaginationQuery,
4-
AbstractQuery,
5-
AbstractQueryOptions,
6-
} from '../../engine'
1+
import { z } from 'zod'
2+
import { PaginationQuery, AbstractQueryOptions } from '../../engine'
73
import {
84
useQuery as useQueryVanilla,
95
useQueryAndPagination as useQueryAndPaginationVanilla,
106
} from '../../routers/inMemory'
7+
import { NonNullableRecord } from '../../utils'
118
import { zodParser } from '../util'
129

13-
export const useQuery = <
14-
TQuery extends AbstractQuery,
15-
TSchemaOutput extends Partial<TQuery>,
16-
TSchemaDef extends ZodTypeDef = ZodTypeDef,
17-
TSchemaInput = TSchemaOutput,
18-
>(
19-
defaultQuery: TQuery,
20-
schemaQuery: ZodType<TSchemaOutput, TSchemaDef, TSchemaInput>,
10+
export const useQuery = <TSchema extends z.ZodTypeAny>(
11+
defaultQuery: NonNullableRecord<z.output<TSchema>>,
12+
schemaQuery: TSchema,
2113
options?: Partial<AbstractQueryOptions>,
2214
) => useQueryVanilla(defaultQuery, zodParser(schemaQuery), options)
2315

24-
export const useQueryAndPagination = <
25-
TQuery extends AbstractQuery,
26-
TSchemaOutput extends Partial<TQuery>,
27-
TSchemaDef extends ZodTypeDef = ZodTypeDef,
28-
TSchemaInput = TSchemaOutput,
29-
>(
30-
defaultQuery: TQuery,
31-
schemaQuery: ZodType<TSchemaOutput, TSchemaDef, TSchemaInput>,
16+
export const useQueryAndPagination = <TSchema extends z.ZodTypeAny>(
17+
defaultQuery: NonNullableRecord<z.output<TSchema>>,
18+
schemaQuery: TSchema,
3219
defaultPagination?: PaginationQuery,
3320
options?: Partial<AbstractQueryOptions>,
3421
) =>

src/zod/routers/nextRouter.ts

Lines changed: 9 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,22 @@
1-
import { ZodType, ZodTypeDef } from 'zod'
2-
import {
3-
PaginationQuery,
4-
AbstractQuery,
5-
AbstractQueryOptions,
6-
} from '../../engine'
1+
import { z } from 'zod'
2+
import { PaginationQuery, AbstractQueryOptions } from '../../engine'
73
import {
84
useQuery as useQueryVanilla,
95
useQueryAndPagination as useQueryAndPaginationVanilla,
106
} from '../../routers/nextRouter'
117
import { zodParser } from '../util'
128
import { RouterWithHistoryOptions } from '../../routers/shared'
9+
import { NonNullableRecord } from '../../utils'
1310

14-
export const useQuery = <
15-
TQuery extends AbstractQuery,
16-
TSchemaOutput extends Partial<TQuery>,
17-
TSchemaDef extends ZodTypeDef = ZodTypeDef,
18-
TSchemaInput = TSchemaOutput,
19-
>(
20-
defaultQuery: TQuery,
21-
schemaQuery: ZodType<TSchemaOutput, TSchemaDef, TSchemaInput>,
11+
export const useQuery = <TSchema extends z.ZodTypeAny>(
12+
defaultQuery: NonNullableRecord<z.output<TSchema>>,
13+
schemaQuery: TSchema,
2214
options?: Partial<AbstractQueryOptions & RouterWithHistoryOptions>,
2315
) => useQueryVanilla(defaultQuery, zodParser(schemaQuery), options)
2416

25-
export const useQueryAndPagination = <
26-
TQuery extends AbstractQuery,
27-
TSchemaOutput extends Partial<TQuery>,
28-
TSchemaDef extends ZodTypeDef = ZodTypeDef,
29-
TSchemaInput = TSchemaOutput,
30-
>(
31-
defaultQuery: TQuery,
32-
schemaQuery: ZodType<TSchemaOutput, TSchemaDef, TSchemaInput>,
17+
export const useQueryAndPagination = <TSchema extends z.ZodTypeAny>(
18+
defaultQuery: NonNullableRecord<z.output<TSchema>>,
19+
schemaQuery: TSchema,
3320
defaultPagination?: PaginationQuery,
3421
options?: Partial<AbstractQueryOptions & RouterWithHistoryOptions>,
3522
) =>

src/zod/routers/reactRouter.ts

Lines changed: 9 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,22 @@
1-
import { ZodType, ZodTypeDef } from 'zod'
2-
import {
3-
PaginationQuery,
4-
AbstractQuery,
5-
AbstractQueryOptions,
6-
} from '../../engine'
1+
import { z } from 'zod'
2+
import { PaginationQuery, AbstractQueryOptions } from '../../engine'
73
import {
84
useQuery as useQueryVanilla,
95
useQueryAndPagination as useQueryAndPaginationVanilla,
106
} from '../../routers/reactRouter'
117
import { zodParser } from '../util'
128
import { RouterWithHistoryOptions } from '../../routers/shared'
9+
import { NonNullableRecord } from '../../utils'
1310

14-
export const useQuery = <
15-
TQuery extends AbstractQuery,
16-
TSchemaOutput extends Partial<TQuery>,
17-
TSchemaDef extends ZodTypeDef = ZodTypeDef,
18-
TSchemaInput = TSchemaOutput,
19-
>(
20-
defaultQuery: TQuery,
21-
schemaQuery: ZodType<TSchemaOutput, TSchemaDef, TSchemaInput>,
11+
export const useQuery = <TSchema extends z.ZodTypeAny>(
12+
defaultQuery: NonNullableRecord<z.output<TSchema>>,
13+
schemaQuery: TSchema,
2214
options?: Partial<AbstractQueryOptions & RouterWithHistoryOptions>,
2315
) => useQueryVanilla(defaultQuery, zodParser(schemaQuery), options)
2416

25-
export const useQueryAndPagination = <
26-
TQuery extends AbstractQuery,
27-
TSchemaOutput extends Partial<TQuery>,
28-
TSchemaDef extends ZodTypeDef = ZodTypeDef,
29-
TSchemaInput = TSchemaOutput,
30-
>(
31-
defaultQuery: TQuery,
32-
schemaQuery: ZodType<TSchemaOutput, TSchemaDef, TSchemaInput>,
17+
export const useQueryAndPagination = <TSchema extends z.ZodTypeAny>(
18+
defaultQuery: NonNullableRecord<z.output<TSchema>>,
19+
schemaQuery: TSchema,
3320
defaultPagination?: PaginationQuery,
3421
options?: Partial<AbstractQueryOptions & RouterWithHistoryOptions>,
3522
) =>

src/zod/util.ts

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

44
export const zodParser =
5-
<
6-
Output extends AbstractQuery,
7-
TSchemaOutput extends ReturnType<ParseQuery<Output>>,
8-
TSchemaDef extends ZodTypeDef,
9-
TSchemaInput,
10-
>(
11-
schema: ZodType<TSchemaOutput, TSchemaDef, TSchemaInput>,
5+
<Output extends AbstractQuery, TSchema extends z.ZodType<Output>>(
6+
schema: TSchema,
127
): ParseQuery<Output> =>
138
(q) =>
149
schema.parse(q)

0 commit comments

Comments
 (0)