From 9aff192b87412374dbfe813de5a364fb27c5a3a0 Mon Sep 17 00:00:00 2001 From: Michiel ter Reehorst Date: Mon, 24 Nov 2025 11:50:10 +0100 Subject: [PATCH 1/3] Make enhance function compatible with prisma v7 --- packages/schema/src/plugins/enhancer/enhance/index.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/schema/src/plugins/enhancer/enhance/index.ts b/packages/schema/src/plugins/enhancer/enhance/index.ts index 5aad2a9fb..c7554db23 100644 --- a/packages/schema/src/plugins/enhancer/enhance/index.ts +++ b/packages/schema/src/plugins/enhancer/enhance/index.ts @@ -315,10 +315,13 @@ export function enhance(prisma: DbClient, context?: Enh } private createLogicalPrismaImports(prismaImport: string, prismaClientImport: string, target: string | undefined) { + const prismaVersion = getPrismaVersion(); + const runtimeLibraryImportSubPath = semver.gte(prismaVersion, '7.0.0') ? '/runtime/library' : '/runtime/client'; + const prismaTargetImport = target === 'edge' ? `${prismaImport}/edge` : prismaImport; const runtimeLibraryImport = this.isNewPrismaClientGenerator ? // new generator has these types only in "@prisma/client" - '@prisma/client/runtime/library' + '@prisma/client${runtimeLibraryImportSubPath}' : // old generator has these types generated with the client `${prismaImport}/runtime/library`; @@ -432,8 +435,9 @@ export type Enhanced = let generateCmd = `prisma generate --schema "${logicalPrismaFile}" --generator=${prismaClientGeneratorName}`; const prismaVersion = getPrismaVersion(); - if (!prismaVersion || semver.gte(prismaVersion, '5.2.0')) { + if (!prismaVersion || (semver.gte(prismaVersion, '5.2.0') && semver.lt(prismaVersion, '7.0.0'))) { // add --no-engine to reduce generation size if the prisma version supports + // v7 has removed this option completely, because it no longer generates an engine generateCmd += ' --no-engine'; } From 0bd06aed6731c28865e175d0b22c09df69e99c34 Mon Sep 17 00:00:00 2001 From: Michiel ter Reehorst Date: Mon, 24 Nov 2025 20:18:00 +0100 Subject: [PATCH 2/3] fix: swap ternary logic for runtime import path v7 has the new /runtime/client path. --- packages/schema/src/plugins/enhancer/enhance/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/schema/src/plugins/enhancer/enhance/index.ts b/packages/schema/src/plugins/enhancer/enhance/index.ts index c7554db23..a1771c79f 100644 --- a/packages/schema/src/plugins/enhancer/enhance/index.ts +++ b/packages/schema/src/plugins/enhancer/enhance/index.ts @@ -316,7 +316,7 @@ export function enhance(prisma: DbClient, context?: Enh private createLogicalPrismaImports(prismaImport: string, prismaClientImport: string, target: string | undefined) { const prismaVersion = getPrismaVersion(); - const runtimeLibraryImportSubPath = semver.gte(prismaVersion, '7.0.0') ? '/runtime/library' : '/runtime/client'; + const runtimeLibraryImportSubPath = semver.gte(prismaVersion, '7.0.0') ? '/runtime/client' : '/runtime/library'; const prismaTargetImport = target === 'edge' ? `${prismaImport}/edge` : prismaImport; const runtimeLibraryImport = this.isNewPrismaClientGenerator From 03309b301f9f4d6878fe955e65b1bbf8d24cee71 Mon Sep 17 00:00:00 2001 From: Michiel ter Reehorst Date: Mon, 24 Nov 2025 20:54:51 +0100 Subject: [PATCH 3/3] fix: use template string correctly And implement other AI feedback about checking `prismaVersion` --- 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 a1771c79f..481c37118 100644 --- a/packages/schema/src/plugins/enhancer/enhance/index.ts +++ b/packages/schema/src/plugins/enhancer/enhance/index.ts @@ -316,12 +316,12 @@ export function enhance(prisma: DbClient, context?: Enh private createLogicalPrismaImports(prismaImport: string, prismaClientImport: string, target: string | undefined) { const prismaVersion = getPrismaVersion(); - const runtimeLibraryImportSubPath = semver.gte(prismaVersion, '7.0.0') ? '/runtime/client' : '/runtime/library'; + const runtimeLibraryImportSubPath = prismaVersion && semver.gte(prismaVersion, '7.0.0') ? '/runtime/client' : '/runtime/library'; const prismaTargetImport = target === 'edge' ? `${prismaImport}/edge` : prismaImport; const runtimeLibraryImport = this.isNewPrismaClientGenerator ? // new generator has these types only in "@prisma/client" - '@prisma/client${runtimeLibraryImportSubPath}' + `@prisma/client${runtimeLibraryImportSubPath}` : // old generator has these types generated with the client `${prismaImport}/runtime/library`;