From 9796d6f11586806e994bf6a1ae2ca2dab684a0d2 Mon Sep 17 00:00:00 2001 From: Wei Zhu Date: Fri, 20 Oct 2023 21:36:21 +1030 Subject: [PATCH] fix: SearchParams check --- .changeset/witty-crabs-grin.md | 5 +++++ .../src/__tests__/__snapshots__/cli.test.ts.snap | 10 ++++++---- packages/remix-routes/src/template.ts | 10 +++------- 3 files changed, 14 insertions(+), 11 deletions(-) create mode 100644 .changeset/witty-crabs-grin.md diff --git a/.changeset/witty-crabs-grin.md b/.changeset/witty-crabs-grin.md new file mode 100644 index 00000000..e3809bb7 --- /dev/null +++ b/.changeset/witty-crabs-grin.md @@ -0,0 +1,5 @@ +--- +"remix-routes": patch +--- + +fix SearchParams check diff --git a/packages/remix-routes/src/__tests__/__snapshots__/cli.test.ts.snap b/packages/remix-routes/src/__tests__/__snapshots__/cli.test.ts.snap index 2c6616ce..590e09b3 100644 --- a/packages/remix-routes/src/__tests__/__snapshots__/cli.test.ts.snap +++ b/packages/remix-routes/src/__tests__/__snapshots__/cli.test.ts.snap @@ -8,8 +8,9 @@ exports[`build v1 routes 1`] = ` : false ); type URLSearchParamsInit = string | string[][] | Record | URLSearchParams; - type ExportedQuery = IsAny extends true ? URLSearchParamsInit : T; - type Query = IsAny extends true ? [URLSearchParamsInit?] : [T]; + // symbol won't be a key of SearchParams + type IsSearchParams = symbol extends keyof T ? false : true; + type ExportedQuery = IsSearchParams extends true ? T : URLSearchParamsInit; export interface Routes { @@ -236,8 +237,9 @@ exports[`build v2 routes 1`] = ` : false ); type URLSearchParamsInit = string | string[][] | Record | URLSearchParams; - type ExportedQuery = IsAny extends true ? URLSearchParamsInit : T; - type Query = IsAny extends true ? [URLSearchParamsInit?] : [T]; + // symbol won't be a key of SearchParams + type IsSearchParams = symbol extends keyof T ? false : true; + type ExportedQuery = IsSearchParams extends true ? T : URLSearchParamsInit; export interface Routes { diff --git a/packages/remix-routes/src/template.ts b/packages/remix-routes/src/template.ts index 290a4b40..91ebf25b 100644 --- a/packages/remix-routes/src/template.ts +++ b/packages/remix-routes/src/template.ts @@ -1,12 +1,8 @@ export const template = `declare module "remix-routes" { - type IsAny = ( - unknown extends T - ? [keyof T] extends [never] ? false : true - : false - ); type URLSearchParamsInit = string | string[][] | Record | URLSearchParams; - type ExportedQuery = IsAny extends true ? URLSearchParamsInit : T; - type Query = IsAny extends true ? [URLSearchParamsInit?] : [T]; + // symbol won't be a key of SearchParams + type IsSearchParams = symbol extends keyof T ? false : true; + type ExportedQuery = IsSearchParams extends true ? T : URLSearchParamsInit; export interface Routes { <% routes.forEach(({ route, params, fileName }) => { %>