From 5f4ecc2922ce3ccc25178c78b552acc45b9f86e1 Mon Sep 17 00:00:00 2001 From: devgioele Date: Fri, 28 Jul 2023 13:07:15 +0200 Subject: [PATCH 1/2] fix types --- src/routers/__test__/nextRouter.test.ts | 2 +- src/zod/routers/inMemory.ts | 9 ++++----- src/zod/routers/nextRouter.ts | 9 ++++----- src/zod/routers/reactRouter.ts | 9 ++++----- src/zod/util.ts | 9 +++++++-- 5 files changed, 20 insertions(+), 18 deletions(-) diff --git a/src/routers/__test__/nextRouter.test.ts b/src/routers/__test__/nextRouter.test.ts index 46f95ae..6fb5b19 100644 --- a/src/routers/__test__/nextRouter.test.ts +++ b/src/routers/__test__/nextRouter.test.ts @@ -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), diff --git a/src/zod/routers/inMemory.ts b/src/zod/routers/inMemory.ts index d0c9427..a771c2d 100644 --- a/src/zod/routers/inMemory.ts +++ b/src/zod/routers/inMemory.ts @@ -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 extends Partial, + TQuery extends AbstractQuery, + TSchemaOutput extends Partial, TSchemaDef extends ZodTypeDef = ZodTypeDef, TSchemaInput = TSchemaOutput, >( @@ -23,8 +22,8 @@ export const useQuery = < ) => useQueryVanilla(defaultQuery, zodParser(schemaQuery), options) export const useQueryAndPagination = < - TQuery extends NonNullableRecord, - TSchemaOutput extends Partial, + TQuery extends AbstractQuery, + TSchemaOutput extends Partial, TSchemaDef extends ZodTypeDef = ZodTypeDef, TSchemaInput = TSchemaOutput, >( diff --git a/src/zod/routers/nextRouter.ts b/src/zod/routers/nextRouter.ts index a0374ab..9b5fcfd 100644 --- a/src/zod/routers/nextRouter.ts +++ b/src/zod/routers/nextRouter.ts @@ -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 extends Partial, + TQuery extends AbstractQuery, + TSchemaOutput extends Partial, TSchemaDef extends ZodTypeDef = ZodTypeDef, TSchemaInput = TSchemaOutput, >( @@ -24,8 +23,8 @@ export const useQuery = < ) => useQueryVanilla(defaultQuery, zodParser(schemaQuery), options) export const useQueryAndPagination = < - TQuery extends NonNullableRecord, - TSchemaOutput extends Partial, + TQuery extends AbstractQuery, + TSchemaOutput extends Partial, TSchemaDef extends ZodTypeDef = ZodTypeDef, TSchemaInput = TSchemaOutput, >( diff --git a/src/zod/routers/reactRouter.ts b/src/zod/routers/reactRouter.ts index d0350b3..a72bf88 100644 --- a/src/zod/routers/reactRouter.ts +++ b/src/zod/routers/reactRouter.ts @@ -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 extends Partial, + TQuery extends AbstractQuery, + TSchemaOutput extends Partial, TSchemaDef extends ZodTypeDef = ZodTypeDef, TSchemaInput = TSchemaOutput, >( @@ -24,8 +23,8 @@ export const useQuery = < ) => useQueryVanilla(defaultQuery, zodParser(schemaQuery), options) export const useQueryAndPagination = < - TQuery extends NonNullableRecord, - TSchemaOutput extends Partial, + TQuery extends AbstractQuery, + TSchemaOutput extends Partial, TSchemaDef extends ZodTypeDef = ZodTypeDef, TSchemaInput = TSchemaOutput, >( diff --git a/src/zod/util.ts b/src/zod/util.ts index ae2eff2..259c939 100644 --- a/src/zod/util.ts +++ b/src/zod/util.ts @@ -2,8 +2,13 @@ import { ZodType, ZodTypeDef } from 'zod' import { AbstractQuery, ParseQuery } from '../engine/query' export const zodParser = - , Def extends ZodTypeDef, Input>( - schema: ZodType, + < + Output extends AbstractQuery, + TSchemaOutput extends ReturnType>, + TSchemaDef extends ZodTypeDef, + TSchemaInput, + >( + schema: ZodType, ): ParseQuery => (q) => schema.parse(q) From 1db92927e97b7ab99ef0938453877893721ef8b5 Mon Sep 17 00:00:00 2001 From: devgioele Date: Mon, 31 Jul 2023 10:28:46 +0200 Subject: [PATCH 2/2] use schema as definition of query --- src/zod/routers/inMemory.ts | 31 +++++++++---------------------- src/zod/routers/nextRouter.ts | 31 +++++++++---------------------- src/zod/routers/reactRouter.ts | 31 +++++++++---------------------- src/zod/util.ts | 11 +++-------- 4 files changed, 30 insertions(+), 74 deletions(-) diff --git a/src/zod/routers/inMemory.ts b/src/zod/routers/inMemory.ts index a771c2d..289b34f 100644 --- a/src/zod/routers/inMemory.ts +++ b/src/zod/routers/inMemory.ts @@ -1,34 +1,21 @@ -import { ZodType, ZodTypeDef } from 'zod' -import { - PaginationQuery, - AbstractQuery, - AbstractQueryOptions, -} from '../../engine' +import { z } from 'zod' +import { PaginationQuery, AbstractQueryOptions } from '../../engine' import { useQuery as useQueryVanilla, useQueryAndPagination as useQueryAndPaginationVanilla, } from '../../routers/inMemory' +import { NonNullableRecord } from '../../utils' import { zodParser } from '../util' -export const useQuery = < - TQuery extends AbstractQuery, - TSchemaOutput extends Partial, - TSchemaDef extends ZodTypeDef = ZodTypeDef, - TSchemaInput = TSchemaOutput, ->( - defaultQuery: TQuery, - schemaQuery: ZodType, +export const useQuery = ( + defaultQuery: NonNullableRecord>, + schemaQuery: TSchema, options?: Partial, ) => useQueryVanilla(defaultQuery, zodParser(schemaQuery), options) -export const useQueryAndPagination = < - TQuery extends AbstractQuery, - TSchemaOutput extends Partial, - TSchemaDef extends ZodTypeDef = ZodTypeDef, - TSchemaInput = TSchemaOutput, ->( - defaultQuery: TQuery, - schemaQuery: ZodType, +export const useQueryAndPagination = ( + defaultQuery: NonNullableRecord>, + schemaQuery: TSchema, defaultPagination?: PaginationQuery, options?: Partial, ) => diff --git a/src/zod/routers/nextRouter.ts b/src/zod/routers/nextRouter.ts index 9b5fcfd..3f26e28 100644 --- a/src/zod/routers/nextRouter.ts +++ b/src/zod/routers/nextRouter.ts @@ -1,35 +1,22 @@ -import { ZodType, ZodTypeDef } from 'zod' -import { - PaginationQuery, - AbstractQuery, - AbstractQueryOptions, -} from '../../engine' +import { z } from 'zod' +import { PaginationQuery, AbstractQueryOptions } from '../../engine' import { useQuery as useQueryVanilla, useQueryAndPagination as useQueryAndPaginationVanilla, } from '../../routers/nextRouter' import { zodParser } from '../util' import { RouterWithHistoryOptions } from '../../routers/shared' +import { NonNullableRecord } from '../../utils' -export const useQuery = < - TQuery extends AbstractQuery, - TSchemaOutput extends Partial, - TSchemaDef extends ZodTypeDef = ZodTypeDef, - TSchemaInput = TSchemaOutput, ->( - defaultQuery: TQuery, - schemaQuery: ZodType, +export const useQuery = ( + defaultQuery: NonNullableRecord>, + schemaQuery: TSchema, options?: Partial, ) => useQueryVanilla(defaultQuery, zodParser(schemaQuery), options) -export const useQueryAndPagination = < - TQuery extends AbstractQuery, - TSchemaOutput extends Partial, - TSchemaDef extends ZodTypeDef = ZodTypeDef, - TSchemaInput = TSchemaOutput, ->( - defaultQuery: TQuery, - schemaQuery: ZodType, +export const useQueryAndPagination = ( + defaultQuery: NonNullableRecord>, + schemaQuery: TSchema, defaultPagination?: PaginationQuery, options?: Partial, ) => diff --git a/src/zod/routers/reactRouter.ts b/src/zod/routers/reactRouter.ts index a72bf88..0bbabe2 100644 --- a/src/zod/routers/reactRouter.ts +++ b/src/zod/routers/reactRouter.ts @@ -1,35 +1,22 @@ -import { ZodType, ZodTypeDef } from 'zod' -import { - PaginationQuery, - AbstractQuery, - AbstractQueryOptions, -} from '../../engine' +import { z } from 'zod' +import { PaginationQuery, AbstractQueryOptions } from '../../engine' import { useQuery as useQueryVanilla, useQueryAndPagination as useQueryAndPaginationVanilla, } from '../../routers/reactRouter' import { zodParser } from '../util' import { RouterWithHistoryOptions } from '../../routers/shared' +import { NonNullableRecord } from '../../utils' -export const useQuery = < - TQuery extends AbstractQuery, - TSchemaOutput extends Partial, - TSchemaDef extends ZodTypeDef = ZodTypeDef, - TSchemaInput = TSchemaOutput, ->( - defaultQuery: TQuery, - schemaQuery: ZodType, +export const useQuery = ( + defaultQuery: NonNullableRecord>, + schemaQuery: TSchema, options?: Partial, ) => useQueryVanilla(defaultQuery, zodParser(schemaQuery), options) -export const useQueryAndPagination = < - TQuery extends AbstractQuery, - TSchemaOutput extends Partial, - TSchemaDef extends ZodTypeDef = ZodTypeDef, - TSchemaInput = TSchemaOutput, ->( - defaultQuery: TQuery, - schemaQuery: ZodType, +export const useQueryAndPagination = ( + defaultQuery: NonNullableRecord>, + schemaQuery: TSchema, defaultPagination?: PaginationQuery, options?: Partial, ) => diff --git a/src/zod/util.ts b/src/zod/util.ts index 259c939..a2e4335 100644 --- a/src/zod/util.ts +++ b/src/zod/util.ts @@ -1,14 +1,9 @@ -import { ZodType, ZodTypeDef } from 'zod' +import { z } from 'zod' import { AbstractQuery, ParseQuery } from '../engine/query' export const zodParser = - < - Output extends AbstractQuery, - TSchemaOutput extends ReturnType>, - TSchemaDef extends ZodTypeDef, - TSchemaInput, - >( - schema: ZodType, + >( + schema: TSchema, ): ParseQuery => (q) => schema.parse(q)