From fe5ba1bb39c58e695d2c24e6de70c66661dfaf77 Mon Sep 17 00:00:00 2001 From: chunkerchunker Date: Thu, 29 May 2025 22:45:47 -0700 Subject: [PATCH 1/3] =?UTF-8?q?Feature=20request:=20plugin=20=E2=80=9Cprep?= =?UTF-8?q?rocessor=E2=80=9D=20option=20(#2022)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Yiming --- packages/schema/src/cli/plugin-runner.ts | 46 +++++++++++++++--------- 1 file changed, 30 insertions(+), 16 deletions(-) diff --git a/packages/schema/src/cli/plugin-runner.ts b/packages/schema/src/cli/plugin-runner.ts index a13ca2afc..54e13d41e 100644 --- a/packages/schema/src/cli/plugin-runner.ts +++ b/packages/schema/src/cli/plugin-runner.ts @@ -108,8 +108,14 @@ export class PluginRunner { }); } + const preprocessorPlugins = plugins.filter((p) => p.options.preprocessor); + const otherPlugins = plugins.filter((p) => !p.options.preprocessor); + // calculate all plugins (including core plugins implicitly enabled) - const { corePlugins, userPlugins } = this.calculateAllPlugins(runnerOptions, plugins); + const { corePlugins, userPlugins } = this.calculateAllPlugins( + runnerOptions, + otherPlugins, + ); const allPlugins = [...corePlugins, ...userPlugins]; // check dependencies @@ -139,6 +145,28 @@ export class PluginRunner { let prismaClientDtsPath: string | undefined = undefined; const project = createProject(); + + const runUserPlugins = async (plugins: PluginInfo[]) => { + for (const { name, description, run, options: pluginOptions } of plugins) { + const options = { ...pluginOptions, prismaClientPath, prismaClientDtsPath }; + const r = await this.runPlugin( + name, + description, + run, + runnerOptions, + options as PluginOptions, + dmmf, + shortNameMap, + project, + false + ); + warnings.push(...(r?.warnings ?? [])); // the null-check is for backward compatibility + } + }; + + // run preprocessor plugins + await runUserPlugins(preprocessorPlugins); + for (const { name, description, run, options: pluginOptions } of corePlugins) { const options = { ...pluginOptions, prismaClientPath }; const r = await this.runPlugin( @@ -175,21 +203,7 @@ export class PluginRunner { await compileProject(project, runnerOptions); // run user plugins - for (const { name, description, run, options: pluginOptions } of userPlugins) { - const options = { ...pluginOptions, prismaClientPath, prismaClientDtsPath }; - const r = await this.runPlugin( - name, - description, - run, - runnerOptions, - options as PluginOptions, - dmmf, - shortNameMap, - project, - false - ); - warnings.push(...(r?.warnings ?? [])); // the null-check is for backward compatibility - } + await runUserPlugins(userPlugins); console.log(colors.green(colors.bold('\n👻 All plugins completed successfully!'))); warnings.forEach((w) => console.warn(colors.yellow(w))); From 27e0b0ebd004fdd7ccbc8bacb654f724f986c60b Mon Sep 17 00:00:00 2001 From: Yiming Cao Date: Sun, 1 Jun 2025 09:11:25 -0700 Subject: [PATCH 2/3] chore: bump version (#2136) --- package.json | 2 +- packages/ide/jetbrains/package.json | 2 +- packages/language/package.json | 2 +- packages/misc/redwood/package.json | 2 +- packages/plugins/openapi/package.json | 2 +- packages/plugins/swr/package.json | 2 +- packages/plugins/tanstack-query/package.json | 2 +- 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 +- 13 files changed, 13 insertions(+), 13 deletions(-) diff --git a/package.json b/package.json index 8d08d09ac..4ac4b1699 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "zenstack-monorepo", - "version": "2.15.0", + "version": "2.15.1", "description": "", "scripts": { "build": "pnpm -r --filter=\"!./packages/ide/*\" build", diff --git a/packages/ide/jetbrains/package.json b/packages/ide/jetbrains/package.json index c1f360c71..c2be72642 100644 --- a/packages/ide/jetbrains/package.json +++ b/packages/ide/jetbrains/package.json @@ -1,6 +1,6 @@ { "name": "jetbrains", - "version": "2.15.0", + "version": "2.15.1", "displayName": "ZenStack JetBrains IDE Plugin", "description": "ZenStack JetBrains IDE plugin", "homepage": "https://zenstack.dev", diff --git a/packages/language/package.json b/packages/language/package.json index ca7559088..008354f28 100644 --- a/packages/language/package.json +++ b/packages/language/package.json @@ -1,6 +1,6 @@ { "name": "@zenstackhq/language", - "version": "2.15.0", + "version": "2.15.1", "displayName": "ZenStack modeling language compiler", "description": "ZenStack modeling language compiler", "homepage": "https://zenstack.dev", diff --git a/packages/misc/redwood/package.json b/packages/misc/redwood/package.json index 8eeb3b0da..be767c788 100644 --- a/packages/misc/redwood/package.json +++ b/packages/misc/redwood/package.json @@ -1,7 +1,7 @@ { "name": "@zenstackhq/redwood", "displayName": "ZenStack RedwoodJS Integration", - "version": "2.15.0", + "version": "2.15.1", "description": "CLI and runtime for integrating ZenStack with RedwoodJS projects.", "repository": { "type": "git", diff --git a/packages/plugins/openapi/package.json b/packages/plugins/openapi/package.json index 3d82af6be..8a3473009 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": "2.15.0", + "version": "2.15.1", "description": "ZenStack plugin and runtime supporting OpenAPI", "main": "index.js", "repository": { diff --git a/packages/plugins/swr/package.json b/packages/plugins/swr/package.json index 2e2d68298..a4410973a 100644 --- a/packages/plugins/swr/package.json +++ b/packages/plugins/swr/package.json @@ -1,7 +1,7 @@ { "name": "@zenstackhq/swr", "displayName": "ZenStack plugin for generating SWR hooks", - "version": "2.15.0", + "version": "2.15.1", "description": "ZenStack plugin for generating SWR hooks", "main": "index.js", "repository": { diff --git a/packages/plugins/tanstack-query/package.json b/packages/plugins/tanstack-query/package.json index 505cfee6d..91d45f688 100644 --- a/packages/plugins/tanstack-query/package.json +++ b/packages/plugins/tanstack-query/package.json @@ -1,7 +1,7 @@ { "name": "@zenstackhq/tanstack-query", "displayName": "ZenStack plugin for generating tanstack-query hooks", - "version": "2.15.0", + "version": "2.15.1", "description": "ZenStack plugin for generating tanstack-query hooks", "main": "index.js", "exports": { diff --git a/packages/plugins/trpc/package.json b/packages/plugins/trpc/package.json index c03357046..44af8ef76 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": "2.15.0", + "version": "2.15.1", "description": "ZenStack plugin for tRPC", "main": "index.js", "repository": { diff --git a/packages/runtime/package.json b/packages/runtime/package.json index dc29f1f81..4cc525ae5 100644 --- a/packages/runtime/package.json +++ b/packages/runtime/package.json @@ -1,7 +1,7 @@ { "name": "@zenstackhq/runtime", "displayName": "ZenStack Runtime Library", - "version": "2.15.0", + "version": "2.15.1", "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 4e6b08ff4..a2c651f89 100644 --- a/packages/schema/package.json +++ b/packages/schema/package.json @@ -3,7 +3,7 @@ "publisher": "zenstack", "displayName": "ZenStack Language Tools", "description": "FullStack enhancement for Prisma ORM: seamless integration from database to UI", - "version": "2.15.0", + "version": "2.15.1", "author": { "name": "ZenStack Team" }, diff --git a/packages/sdk/package.json b/packages/sdk/package.json index c0801b805..defb02ef8 100644 --- a/packages/sdk/package.json +++ b/packages/sdk/package.json @@ -1,6 +1,6 @@ { "name": "@zenstackhq/sdk", - "version": "2.15.0", + "version": "2.15.1", "description": "ZenStack plugin development SDK", "main": "index.js", "scripts": { diff --git a/packages/server/package.json b/packages/server/package.json index 340a1821e..76bba5fb5 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -1,6 +1,6 @@ { "name": "@zenstackhq/server", - "version": "2.15.0", + "version": "2.15.1", "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 6541dc1ea..6d186f751 100644 --- a/packages/testtools/package.json +++ b/packages/testtools/package.json @@ -1,6 +1,6 @@ { "name": "@zenstackhq/testtools", - "version": "2.15.0", + "version": "2.15.1", "description": "ZenStack Test Tools", "main": "index.js", "private": true, From 62e60bd73a2dab05aa78932307b4fcdd286f5bfc Mon Sep 17 00:00:00 2001 From: Yiming Cao Date: Tue, 3 Jun 2025 09:45:29 -0700 Subject: [PATCH 3/3] fix: type error of `Enhanced` helper (#2137) --- packages/schema/src/plugins/enhancer/enhance/index.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/schema/src/plugins/enhancer/enhance/index.ts b/packages/schema/src/plugins/enhancer/enhance/index.ts index efbda3f67..f8db9c063 100644 --- a/packages/schema/src/plugins/enhancer/enhance/index.ts +++ b/packages/schema/src/plugins/enhancer/enhance/index.ts @@ -286,8 +286,8 @@ export function enhance(prisma: any, context?: EnhancementContext<${authTypePara * type EnhancedPrismaClient = Enhanced; */ export type Enhanced = - Client extends _PrismaClient ? PrismaClient : - Client extends DynamicClientExtensionThis ? PrismaClient : + Client extends DynamicClientExtensionThis<_Prisma.TypeMap, infer _TypeMapCb, infer ExtArgs${ hasClientOptions ? ', infer ClientOptions' : '' }> ? DynamicClientExtensionThis, Prisma.TypeMapCb, ExtArgs${ hasClientOptions ? ', ClientOptions' : ''