From 2035319a030369dc0c847eaac248f2d9acdc7c7b Mon Sep 17 00:00:00 2001 From: Yiming Date: Thu, 13 Apr 2023 13:20:30 -0700 Subject: [PATCH] fix: wrong return type of generated `count` hook (#347) --- package.json | 2 +- packages/language/package.json | 2 +- packages/next/package.json | 2 +- packages/plugins/openapi/package.json | 2 +- packages/plugins/react/package.json | 2 +- packages/plugins/react/src/generator/react-query.ts | 13 ++++++++++++- packages/plugins/react/src/generator/swr.ts | 11 ++++++++++- packages/plugins/trpc/package.json | 2 +- packages/runtime/package.json | 2 +- packages/schema/package.json | 2 +- packages/sdk/package.json | 2 +- packages/server/package.json | 2 +- packages/testtools/package.json | 2 +- tests/integration/test-run/package-lock.json | 4 ++-- 14 files changed, 35 insertions(+), 15 deletions(-) diff --git a/package.json b/package.json index 46bbedcf3..bb3130dac 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "zenstack-monorepo", - "version": "1.0.0-alpha.100", + "version": "1.0.0-alpha.101", "description": "", "scripts": { "build": "pnpm -r build", diff --git a/packages/language/package.json b/packages/language/package.json index 7f4184776..a42368789 100644 --- a/packages/language/package.json +++ b/packages/language/package.json @@ -1,6 +1,6 @@ { "name": "@zenstackhq/language", - "version": "1.0.0-alpha.100", + "version": "1.0.0-alpha.101", "displayName": "ZenStack modeling language compiler", "description": "ZenStack modeling language compiler", "homepage": "https://zenstack.dev", diff --git a/packages/next/package.json b/packages/next/package.json index 0d58df845..b09b102df 100644 --- a/packages/next/package.json +++ b/packages/next/package.json @@ -1,6 +1,6 @@ { "name": "@zenstackhq/next", - "version": "1.0.0-alpha.100", + "version": "1.0.0-alpha.101", "displayName": "ZenStack Next.js integration", "description": "ZenStack Next.js integration", "homepage": "https://zenstack.dev", diff --git a/packages/plugins/openapi/package.json b/packages/plugins/openapi/package.json index 1a57c9ccc..2582d54b5 100644 --- a/packages/plugins/openapi/package.json +++ b/packages/plugins/openapi/package.json @@ -1,7 +1,7 @@ { "name": "@zenstackhq/openapi", "displayName": "ZenStack Plugin and Runtime for OpenAPI", - "version": "1.0.0-alpha.100", + "version": "1.0.0-alpha.101", "description": "ZenStack plugin and runtime supporting OpenAPI", "main": "index.js", "repository": { diff --git a/packages/plugins/react/package.json b/packages/plugins/react/package.json index 92f5356ab..590701090 100644 --- a/packages/plugins/react/package.json +++ b/packages/plugins/react/package.json @@ -1,7 +1,7 @@ { "name": "@zenstackhq/react", "displayName": "ZenStack plugin and runtime for ReactJS", - "version": "1.0.0-alpha.100", + "version": "1.0.0-alpha.101", "description": "ZenStack plugin and runtime for ReactJS", "main": "index.js", "repository": { diff --git a/packages/plugins/react/src/generator/react-query.ts b/packages/plugins/react/src/generator/react-query.ts index 85e67d4b6..076e67511 100644 --- a/packages/plugins/react/src/generator/react-query.ts +++ b/packages/plugins/react/src/generator/react-query.ts @@ -285,13 +285,24 @@ function generateModelHooks(project: Project, outDir: string, model: DataModel, }[OrderFields]`, ]; + const returnType = `{} extends InputErrors ? + Array & + { + [P in ((keyof T) & (keyof Prisma.${model.name}GroupByOutputType))]: P extends '_count' + ? T[P] extends boolean + ? number + : Prisma.GetScalarType + : Prisma.GetScalarType + } + > : InputErrors`; + generateQueryHook( sf, model.name, 'groupBy', false, false, - `{} extends InputErrors ? Prisma.Get${model.name}GroupByPayload : InputErrors`, + returnType, `Prisma.SubsetIntersection & InputErrors`, typeParameters ); diff --git a/packages/plugins/react/src/generator/swr.ts b/packages/plugins/react/src/generator/swr.ts index da1a8b613..9f2d93053 100644 --- a/packages/plugins/react/src/generator/swr.ts +++ b/packages/plugins/react/src/generator/swr.ts @@ -378,7 +378,16 @@ function generateModelHooks(project: Project, outDir: string, model: DataModel, // groupBy if (mapping.groupBy) { methods.push('groupBy'); - const returnType = `{} extends InputErrors ? Prisma.Get${model.name}GroupByPayload : InputErrors`; + const returnType = `{} extends InputErrors ? + Array & + { + [P in ((keyof T) & (keyof Prisma.${model.name}GroupByOutputType))]: P extends '_count' + ? T[P] extends boolean + ? number + : Prisma.GetScalarType + : Prisma.GetScalarType + } + > : InputErrors`; useFunc .addFunction({ name: 'groupBy', diff --git a/packages/plugins/trpc/package.json b/packages/plugins/trpc/package.json index 6f33899e4..b05ad757b 100644 --- a/packages/plugins/trpc/package.json +++ b/packages/plugins/trpc/package.json @@ -1,7 +1,7 @@ { "name": "@zenstackhq/trpc", "displayName": "ZenStack plugin for tRPC", - "version": "1.0.0-alpha.100", + "version": "1.0.0-alpha.101", "description": "ZenStack plugin for tRPC", "main": "index.js", "repository": { diff --git a/packages/runtime/package.json b/packages/runtime/package.json index 418cc5efd..1ea863f6a 100644 --- a/packages/runtime/package.json +++ b/packages/runtime/package.json @@ -1,7 +1,7 @@ { "name": "@zenstackhq/runtime", "displayName": "ZenStack Runtime Library", - "version": "1.0.0-alpha.100", + "version": "1.0.0-alpha.101", "description": "Runtime of ZenStack for both client-side and server-side environments.", "repository": { "type": "git", diff --git a/packages/schema/package.json b/packages/schema/package.json index c62e9691e..08dbef509 100644 --- a/packages/schema/package.json +++ b/packages/schema/package.json @@ -3,7 +3,7 @@ "publisher": "zenstack", "displayName": "ZenStack Language Tools", "description": "A toolkit for building secure CRUD apps with Next.js + Typescript", - "version": "1.0.0-alpha.100", + "version": "1.0.0-alpha.101", "author": { "name": "ZenStack Team" }, diff --git a/packages/sdk/package.json b/packages/sdk/package.json index 78357fbfa..70ed02349 100644 --- a/packages/sdk/package.json +++ b/packages/sdk/package.json @@ -1,6 +1,6 @@ { "name": "@zenstackhq/sdk", - "version": "1.0.0-alpha.100", + "version": "1.0.0-alpha.101", "description": "ZenStack plugin development SDK", "main": "index.js", "scripts": { diff --git a/packages/server/package.json b/packages/server/package.json index b9b9507b5..05086e784 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -1,6 +1,6 @@ { "name": "@zenstackhq/server", - "version": "1.0.0-alpha.100", + "version": "1.0.0-alpha.101", "displayName": "ZenStack Server-side Adapters", "description": "ZenStack server-side adapters", "homepage": "https://zenstack.dev", diff --git a/packages/testtools/package.json b/packages/testtools/package.json index dbcead030..1966c35b6 100644 --- a/packages/testtools/package.json +++ b/packages/testtools/package.json @@ -1,6 +1,6 @@ { "name": "@zenstackhq/testtools", - "version": "1.0.0-alpha.100", + "version": "1.0.0-alpha.101", "description": "ZenStack Test Tools", "main": "index.js", "publishConfig": { diff --git a/tests/integration/test-run/package-lock.json b/tests/integration/test-run/package-lock.json index c28d9cc3d..bede986e3 100644 --- a/tests/integration/test-run/package-lock.json +++ b/tests/integration/test-run/package-lock.json @@ -126,7 +126,7 @@ }, "../../../packages/runtime/dist": { "name": "@zenstackhq/runtime", - "version": "1.0.0-alpha.100", + "version": "1.0.0-alpha.101", "license": "MIT", "dependencies": { "@types/bcryptjs": "^2.4.2", @@ -158,7 +158,7 @@ }, "../../../packages/schema/dist": { "name": "zenstack", - "version": "1.0.0-alpha.100", + "version": "1.0.0-alpha.101", "hasInstallScript": true, "license": "MIT", "dependencies": {