From 782e05c3dfffc4e39b59e8af3ea57fc0c64a9b3e Mon Sep 17 00:00:00 2001 From: devgioele Date: Fri, 28 Jul 2023 06:55:11 +0200 Subject: [PATCH 1/3] create root index for commonjs and use unique name for each function --- package.json | 6 ++-- src/index.ts | 8 +++++ src/routers/__test__/inMemory.test.ts | 25 ++++++++------- src/routers/__test__/nextRouter.test.ts | 37 +++++++++++++++-------- src/routers/__test__/reactRouter.test.tsx | 35 +++++++++++++-------- src/routers/inMemory.ts | 8 ++--- src/routers/nextRouter.ts | 8 ++--- src/routers/reactRouter.ts | 8 ++--- src/zod/routers/inMemory.ts | 12 ++++---- src/zod/routers/nextRouter.ts | 12 ++++---- src/zod/routers/reactRouter.ts | 12 ++++---- tsconfig.cjs.json | 3 +- 12 files changed, 103 insertions(+), 71 deletions(-) create mode 100644 src/index.ts diff --git a/package.json b/package.json index a9ee1b5..bab4732 100644 --- a/package.json +++ b/package.json @@ -5,9 +5,9 @@ "type": "module", "exports": { ".": { - "types": "./dist/types/engine/index.d.ts", - "import": "./dist/esm/engine/index.js", - "require": "./dist/cjs/engine/index.js" + "types": "./dist/types/index.d.ts", + "import": "./dist/esm/index.js", + "require": "./dist/cjs/index.js" }, "./next-router": { "types": "./dist/types/routers/nextRouter.d.ts", diff --git a/src/index.ts b/src/index.ts new file mode 100644 index 0000000..d0ecfbd --- /dev/null +++ b/src/index.ts @@ -0,0 +1,8 @@ +export * from './engine' +export * from './utils' +export * from './routers/nextRouter' +export * from './routers/reactRouter' +export * from './routers/inMemory' +export * from './zod/routers/nextRouter' +export * from './zod/routers/reactRouter' +export * from './zod/routers/inMemory' diff --git a/src/routers/__test__/inMemory.test.ts b/src/routers/__test__/inMemory.test.ts index eae893e..c41e21a 100644 --- a/src/routers/__test__/inMemory.test.ts +++ b/src/routers/__test__/inMemory.test.ts @@ -1,8 +1,11 @@ import { act, renderHook } from '@testing-library/react' import { z } from 'zod' import { NonNullableRecord } from '../../utils' -import { useQuery, useQueryAndPagination } from '../../zod/routers/inMemory' -import { usePagination } from '../inMemory' +import { + useZodInMemoryQuery, + useZodInMemoryQueryAndPagination, +} from '../../zod/routers/inMemory' +import { useInMemoryPagination } from '../inMemory' describe('InMemory', () => { const searchSchema = z.object({ @@ -11,12 +14,12 @@ describe('InMemory', () => { const useInMemoryQueryWithSearch = ( defaultQuery: NonNullableRecord>, - ) => useQuery(defaultQuery, searchSchema) + ) => useZodInMemoryQuery(defaultQuery, searchSchema) test('should set default page and size', () => { const page = 0 const size = 15 - const { result } = renderHook(() => usePagination({ page, size })) + const { result } = renderHook(() => useInMemoryPagination({ page, size })) expect(result.current.page).toBe(page) expect(result.current.size).toBe(size) @@ -25,7 +28,7 @@ describe('InMemory', () => { test('should change page', () => { const page = 2 - const { result } = renderHook(() => usePagination()) + const { result } = renderHook(() => useInMemoryPagination()) act(() => { result.current.setPage(page) @@ -53,7 +56,7 @@ describe('InMemory', () => { const page = 2 const { result } = renderHook(() => - useQueryAndPagination({ search: '' }, searchSchema), + useZodInMemoryQueryAndPagination({ search: '' }, searchSchema), ) act(() => { @@ -77,7 +80,7 @@ describe('InMemory', () => { test('change default parameters', () => { const page = 1 const size = 10 - const { result } = renderHook(() => usePagination({ page, size })) + const { result } = renderHook(() => useInMemoryPagination({ page, size })) expect(result.current.page).toBe(page) expect(result.current.size).toBe(size) @@ -90,7 +93,7 @@ describe('InMemory', () => { const page = 2 const { result } = renderHook(() => - useQueryAndPagination({ search: defaultSearch }, searchSchema), + useZodInMemoryQueryAndPagination({ search: defaultSearch }, searchSchema), ) act(() => { @@ -125,7 +128,7 @@ describe('InMemory', () => { const page = 2 const { result } = renderHook(() => - useQueryAndPagination({ search: defaultSearch }, searchSchema), + useZodInMemoryQueryAndPagination({ search: defaultSearch }, searchSchema), ) act(() => { @@ -159,7 +162,7 @@ describe('InMemory', () => { }) const { result } = renderHook(() => - useQuery({ search: '', department: '' }, schema), + useZodInMemoryQuery({ search: '', department: '' }, schema), ) act(() => { @@ -178,7 +181,7 @@ describe('InMemory', () => { const search = '' const { result } = renderHook(() => - useQuery({ search: 'Default search' }, searchSchema), + useZodInMemoryQuery({ search: 'Default search' }, searchSchema), ) act(() => { diff --git a/src/routers/__test__/nextRouter.test.ts b/src/routers/__test__/nextRouter.test.ts index 46f95ae..c49bb79 100644 --- a/src/routers/__test__/nextRouter.test.ts +++ b/src/routers/__test__/nextRouter.test.ts @@ -3,8 +3,11 @@ import router from 'next/router' import { z } from 'zod' import { vi } from 'vitest' import { NonNullableRecord } from '../../utils' -import { useQuery, useQueryAndPagination } from '../../zod/routers/nextRouter' -import { usePagination } from '../nextRouter' +import { + useZodNextRouterQuery, + useZodNextRouterQueryAndPagination, +} from '../../zod/routers/nextRouter' +import { useNextRouterPagination } from '../nextRouter' // eslint-disable-next-line @typescript-eslint/no-unsafe-return vi.mock('next/router', () => require('next-router-mock')) @@ -20,12 +23,12 @@ describe('NextRouter', () => { const useNextRouterQueryWithSearch = ( defaultQuery: NonNullableRecord>, - ) => useQuery(defaultQuery, searchSchema) + ) => useZodNextRouterQuery(defaultQuery, searchSchema) test('should set default page and size', () => { const page = 0 const size = 15 - const { result } = renderHook(() => usePagination({ page, size })) + const { result } = renderHook(() => useNextRouterPagination({ page, size })) expect(result.current.page).toBe(page) expect(result.current.size).toBe(size) @@ -34,7 +37,7 @@ describe('NextRouter', () => { test('should change page', () => { const page = 2 - const { result } = renderHook(() => usePagination()) + const { result } = renderHook(() => useNextRouterPagination()) act(() => { result.current.setPage(page) @@ -64,7 +67,7 @@ describe('NextRouter', () => { const page = 2 const { result } = renderHook(() => - useQueryAndPagination({ search: '' }, searchSchema), + useZodNextRouterQueryAndPagination({ search: '' }, searchSchema), ) act(() => { @@ -91,7 +94,7 @@ describe('NextRouter', () => { test('change default parameters', () => { const page = 1 const size = 10 - const { result } = renderHook(() => usePagination({ page, size })) + const { result } = renderHook(() => useNextRouterPagination({ page, size })) expect(result.current.page).toBe(page) expect(result.current.size).toBe(size) @@ -104,7 +107,10 @@ describe('NextRouter', () => { const page = 2 const { result } = renderHook(() => - useQueryAndPagination({ search: defaultSearch }, searchSchema), + useZodNextRouterQueryAndPagination( + { search: defaultSearch }, + searchSchema, + ), ) act(() => { @@ -146,7 +152,10 @@ describe('NextRouter', () => { const page = 2 const { result } = renderHook(() => - useQueryAndPagination({ search: defaultSearch }, searchSchema), + useZodNextRouterQueryAndPagination( + { search: defaultSearch }, + searchSchema, + ), ) act(() => { @@ -194,7 +203,7 @@ describe('NextRouter', () => { }) const { result } = renderHook(() => - useQuery( + useZodNextRouterQuery( { search: '', department: '', @@ -226,7 +235,9 @@ describe('NextRouter', () => { const greeting = 'hello' router.query = { greeting } - const { result } = renderHook(() => useQuery({ search: '' }, searchSchema)) + const { result } = renderHook(() => + useZodNextRouterQuery({ search: '' }, searchSchema), + ) act(() => { result.current.setQuery({ search: 'Max' }) @@ -242,7 +253,7 @@ describe('NextRouter', () => { router.query = { search: 'Max' } const { result } = renderHook(() => - useQuery({ search: defaultSearch }, searchSchema), + useZodNextRouterQuery({ search: defaultSearch }, searchSchema), ) act(() => { @@ -257,7 +268,7 @@ describe('NextRouter', () => { const search = '' const { result } = renderHook(() => - useQuery({ search: 'Default search' }, searchSchema), + useZodNextRouterQuery({ search: 'Default search' }, searchSchema), ) act(() => { diff --git a/src/routers/__test__/reactRouter.test.tsx b/src/routers/__test__/reactRouter.test.tsx index 803ff28..2afcb11 100644 --- a/src/routers/__test__/reactRouter.test.tsx +++ b/src/routers/__test__/reactRouter.test.tsx @@ -2,8 +2,11 @@ import { act, renderHook } from '@testing-library/react' import { z } from 'zod' import { BrowserRouter } from 'react-router-dom' import { NonNullableRecord } from '../../utils' -import { useQuery, useQueryAndPagination } from '../../zod/routers/reactRouter' -import { usePagination } from '../reactRouter' +import { + useZodReactRouterQuery, + useZodReactRouterQueryAndPagination, +} from '../../zod/routers/reactRouter' +import { useReactRouterPagination } from '../reactRouter' const renderHookWithContext = ( render: (initialProps: Props) => Result, @@ -25,13 +28,13 @@ describe('ReactRouter', () => { const useReactRouterQueryWithSearch = ( defaultQuery: NonNullableRecord>, - ) => useQuery(defaultQuery, searchSchema) + ) => useZodReactRouterQuery(defaultQuery, searchSchema) test('should set default page and size', () => { const page = 0 const size = 15 const { result } = renderHookWithContext(() => - usePagination({ page, size }), + useReactRouterPagination({ page, size }), ) expect(result.current.page).toBe(page) @@ -41,7 +44,7 @@ describe('ReactRouter', () => { test('should change page', () => { const page = 2 - const { result } = renderHookWithContext(() => usePagination()) + const { result } = renderHookWithContext(() => useReactRouterPagination()) act(() => { result.current.setPage(page) @@ -71,7 +74,7 @@ describe('ReactRouter', () => { const page = 2 const { result } = renderHookWithContext(() => - useQueryAndPagination({ search: '' }, searchSchema), + useZodReactRouterQueryAndPagination({ search: '' }, searchSchema), ) act(() => { @@ -97,7 +100,7 @@ describe('ReactRouter', () => { const page = 1 const size = 10 const { result } = renderHookWithContext(() => - usePagination({ page, size }), + useReactRouterPagination({ page, size }), ) expect(result.current.page).toBe(page) @@ -111,7 +114,10 @@ describe('ReactRouter', () => { const page = 2 const { result } = renderHookWithContext(() => - useQueryAndPagination({ search: defaultSearch }, searchSchema), + useZodReactRouterQueryAndPagination( + { search: defaultSearch }, + searchSchema, + ), ) act(() => { @@ -149,7 +155,10 @@ describe('ReactRouter', () => { const page = 2 const { result } = renderHookWithContext(() => - useQueryAndPagination({ search: defaultSearch }, searchSchema), + useZodReactRouterQueryAndPagination( + { search: defaultSearch }, + searchSchema, + ), ) act(() => { @@ -186,7 +195,7 @@ describe('ReactRouter', () => { }) const { result } = renderHookWithContext(() => - useQuery({ search: '', department: '' }, schema), + useZodReactRouterQuery({ search: '', department: '' }, schema), ) act(() => { @@ -207,7 +216,7 @@ describe('ReactRouter', () => { window.history.pushState({}, '', `/?greeting=${greeting}`) const { result } = renderHookWithContext(() => - useQuery({ search: '' }, searchSchema), + useZodReactRouterQuery({ search: '' }, searchSchema), ) act(() => { @@ -226,7 +235,7 @@ describe('ReactRouter', () => { window.history.pushState({}, '', `/?search=Max`) const { result } = renderHookWithContext(() => - useQuery({ search: defaultSearch }, searchSchema), + useZodReactRouterQuery({ search: defaultSearch }, searchSchema), ) act(() => { @@ -241,7 +250,7 @@ describe('ReactRouter', () => { const search = '' const { result } = renderHookWithContext(() => - useQuery({ search: 'Default search' }, searchSchema), + useZodReactRouterQuery({ search: 'Default search' }, searchSchema), ) act(() => { diff --git a/src/routers/inMemory.ts b/src/routers/inMemory.ts index c8e8f54..9beea0d 100644 --- a/src/routers/inMemory.ts +++ b/src/routers/inMemory.ts @@ -29,7 +29,7 @@ const useInMemoryRouter = (): Router => { } } -export const useQuery = ( +export const useInMemoryQuery = ( defaultQuery: T, parseQuery: ParseQuery, options?: Partial, @@ -38,7 +38,7 @@ export const useQuery = ( return useAbstractQuery(defaultQuery, parseQuery, router, options) } -export const useQueryAndPagination = ( +export const useInMemoryQueryAndPagination = ( defaultQuery: T, parseQuery: ParseQuery, defaultPagination?: PaginationQuery, @@ -54,11 +54,11 @@ export const useQueryAndPagination = ( ) } -export const usePagination = ( +export const useInMemoryPagination = ( defaultPagination?: PaginationQuery, options?: Partial, ) => { const { page, size, setPage, setSize, setPagination, resetPagination } = - useQueryAndPagination({}, () => ({}), defaultPagination, options) + useInMemoryQueryAndPagination({}, () => ({}), defaultPagination, options) return { page, size, setPage, setSize, setPagination, resetPagination } } diff --git a/src/routers/nextRouter.ts b/src/routers/nextRouter.ts index 85b3dcd..25d9c9a 100644 --- a/src/routers/nextRouter.ts +++ b/src/routers/nextRouter.ts @@ -58,7 +58,7 @@ const useNextRouter = ( } } -export const useQuery = ( +export const useNextRouterQuery = ( defaultQuery: T, parseQuery: ParseQuery, options?: Partial, @@ -67,7 +67,7 @@ export const useQuery = ( return useAbstractQuery(defaultQuery, parseQuery, router, options) } -export const useQueryAndPagination = ( +export const useNextRouterQueryAndPagination = ( defaultQuery: T, parseQuery: ParseQuery, defaultPagination?: PaginationQuery, @@ -83,11 +83,11 @@ export const useQueryAndPagination = ( ) } -export const usePagination = ( +export const useNextRouterPagination = ( defaultPagination?: PaginationQuery, options?: Partial, ) => { const { page, size, setPage, setSize, setPagination, resetPagination } = - useQueryAndPagination({}, () => ({}), defaultPagination, options) + useNextRouterQueryAndPagination({}, () => ({}), defaultPagination, options) return { page, size, setPage, setSize, setPagination, resetPagination } } diff --git a/src/routers/reactRouter.ts b/src/routers/reactRouter.ts index 5aaeb0f..1ab4945 100644 --- a/src/routers/reactRouter.ts +++ b/src/routers/reactRouter.ts @@ -67,7 +67,7 @@ const useReactRouter = ( } } -export const useQuery = ( +export const useReactRouterQuery = ( defaultQuery: T, parseQuery: ParseQuery, options?: Partial, @@ -76,7 +76,7 @@ export const useQuery = ( return useAbstractQuery(defaultQuery, parseQuery, router, options) } -export const useQueryAndPagination = ( +export const useReactRouterQueryAndPagination = ( defaultQuery: T, parseQuery: ParseQuery, defaultPagination?: PaginationQuery, @@ -92,11 +92,11 @@ export const useQueryAndPagination = ( ) } -export const usePagination = ( +export const useReactRouterPagination = ( defaultPagination?: PaginationQuery, options?: Partial, ) => { const { page, size, setPage, setSize, setPagination, resetPagination } = - useQueryAndPagination({}, () => ({}), defaultPagination, options) + useReactRouterQueryAndPagination({}, () => ({}), defaultPagination, options) return { page, size, setPage, setSize, setPagination, resetPagination } } diff --git a/src/zod/routers/inMemory.ts b/src/zod/routers/inMemory.ts index d0c9427..a591d65 100644 --- a/src/zod/routers/inMemory.ts +++ b/src/zod/routers/inMemory.ts @@ -5,13 +5,13 @@ import { AbstractQueryOptions, } from '../../engine' import { - useQuery as useQueryVanilla, - useQueryAndPagination as useQueryAndPaginationVanilla, + useInMemoryQuery, + useInMemoryQueryAndPagination, } from '../../routers/inMemory' import { zodParser } from '../util' import { NonNullableRecord } from '../../utils' -export const useQuery = < +export const useZodInMemoryQuery = < TQuery extends NonNullableRecord, TSchemaOutput extends Partial, TSchemaDef extends ZodTypeDef = ZodTypeDef, @@ -20,9 +20,9 @@ export const useQuery = < defaultQuery: TQuery, schemaQuery: ZodType, options?: Partial, -) => useQueryVanilla(defaultQuery, zodParser(schemaQuery), options) +) => useInMemoryQuery(defaultQuery, zodParser(schemaQuery), options) -export const useQueryAndPagination = < +export const useZodInMemoryQueryAndPagination = < TQuery extends NonNullableRecord, TSchemaOutput extends Partial, TSchemaDef extends ZodTypeDef = ZodTypeDef, @@ -33,7 +33,7 @@ export const useQueryAndPagination = < defaultPagination?: PaginationQuery, options?: Partial, ) => - useQueryAndPaginationVanilla( + useInMemoryQueryAndPagination( defaultQuery, zodParser(schemaQuery), defaultPagination, diff --git a/src/zod/routers/nextRouter.ts b/src/zod/routers/nextRouter.ts index a0374ab..2b96290 100644 --- a/src/zod/routers/nextRouter.ts +++ b/src/zod/routers/nextRouter.ts @@ -5,14 +5,14 @@ import { AbstractQueryOptions, } from '../../engine' import { - useQuery as useQueryVanilla, - useQueryAndPagination as useQueryAndPaginationVanilla, + useNextRouterQuery, + useNextRouterQueryAndPagination, } from '../../routers/nextRouter' import { zodParser } from '../util' import { NonNullableRecord } from '../../utils' import { RouterWithHistoryOptions } from '../../routers/shared' -export const useQuery = < +export const useZodNextRouterQuery = < TQuery extends NonNullableRecord, TSchemaOutput extends Partial, TSchemaDef extends ZodTypeDef = ZodTypeDef, @@ -21,9 +21,9 @@ export const useQuery = < defaultQuery: TQuery, schemaQuery: ZodType, options?: Partial, -) => useQueryVanilla(defaultQuery, zodParser(schemaQuery), options) +) => useNextRouterQuery(defaultQuery, zodParser(schemaQuery), options) -export const useQueryAndPagination = < +export const useZodNextRouterQueryAndPagination = < TQuery extends NonNullableRecord, TSchemaOutput extends Partial, TSchemaDef extends ZodTypeDef = ZodTypeDef, @@ -34,7 +34,7 @@ export const useQueryAndPagination = < defaultPagination?: PaginationQuery, options?: Partial, ) => - useQueryAndPaginationVanilla( + useNextRouterQueryAndPagination( defaultQuery, zodParser(schemaQuery), defaultPagination, diff --git a/src/zod/routers/reactRouter.ts b/src/zod/routers/reactRouter.ts index d0350b3..f261904 100644 --- a/src/zod/routers/reactRouter.ts +++ b/src/zod/routers/reactRouter.ts @@ -5,14 +5,14 @@ import { AbstractQueryOptions, } from '../../engine' import { - useQuery as useQueryVanilla, - useQueryAndPagination as useQueryAndPaginationVanilla, + useReactRouterQuery, + useReactRouterQueryAndPagination, } from '../../routers/reactRouter' import { zodParser } from '../util' import { NonNullableRecord } from '../../utils' import { RouterWithHistoryOptions } from '../../routers/shared' -export const useQuery = < +export const useZodReactRouterQuery = < TQuery extends NonNullableRecord, TSchemaOutput extends Partial, TSchemaDef extends ZodTypeDef = ZodTypeDef, @@ -21,9 +21,9 @@ export const useQuery = < defaultQuery: TQuery, schemaQuery: ZodType, options?: Partial, -) => useQueryVanilla(defaultQuery, zodParser(schemaQuery), options) +) => useReactRouterQuery(defaultQuery, zodParser(schemaQuery), options) -export const useQueryAndPagination = < +export const useZodReactRouterQueryAndPagination = < TQuery extends NonNullableRecord, TSchemaOutput extends Partial, TSchemaDef extends ZodTypeDef = ZodTypeDef, @@ -34,7 +34,7 @@ export const useQueryAndPagination = < defaultPagination?: PaginationQuery, options?: Partial, ) => - useQueryAndPaginationVanilla( + useReactRouterQueryAndPagination( defaultQuery, zodParser(schemaQuery), defaultPagination, diff --git a/tsconfig.cjs.json b/tsconfig.cjs.json index 46ef3ae..f5a2c03 100644 --- a/tsconfig.cjs.json +++ b/tsconfig.cjs.json @@ -7,7 +7,8 @@ "declaration": false, "declarationMap": false, "sourceMap": false, - "removeComments": true + "removeComments": true, + "incremental": false }, "exclude": ["src/vitest.ts", "**/__test__/*", "**/__tests__/*"], "include": ["src"] From a97ab6bbb4ce17a291dfbbfde6f82fd8d16401c3 Mon Sep 17 00:00:00 2001 From: devgioele Date: Fri, 28 Jul 2023 07:15:22 +0200 Subject: [PATCH 2/3] add legacy export fields --- package.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/package.json b/package.json index bab4732..c9fe81c 100644 --- a/package.json +++ b/package.json @@ -3,6 +3,9 @@ "version": "2.0.1", "description": "Pagination hooks for React", "type": "module", + "types": "./dist/types/index.d.ts", + "module": "./dist/esm/index.js", + "main": "./dist/cjs/index.js", "exports": { ".": { "types": "./dist/types/index.d.ts", From 14d35a689a2a9f47023d54b7e7f0798ec8b607f4 Mon Sep 17 00:00:00 2001 From: devgioele Date: Fri, 28 Jul 2023 07:51:18 +0200 Subject: [PATCH 3/3] rm type module --- package.json | 1 - 1 file changed, 1 deletion(-) diff --git a/package.json b/package.json index c9fe81c..eda03cf 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,6 @@ "name": "@aboutbits/react-pagination", "version": "2.0.1", "description": "Pagination hooks for React", - "type": "module", "types": "./dist/types/index.d.ts", "module": "./dist/esm/index.js", "main": "./dist/cjs/index.js",