@@ -2,6 +2,7 @@ import { execa } from "execa";
22import fs from "fs-extra" ;
33import path from "node:path" ;
44
5+ import { getDenoPrismaSpecifier } from "../utils/package-manager" ;
56import {
67 dependencyVersionMap ,
78 type AvailableDependency ,
@@ -14,12 +15,25 @@ import type {
1415} from "../types" ;
1516import { getInstallArgs } from "../utils/package-manager" ;
1617
17- const prismaScriptMap = {
18- "db:generate" : "prisma generate" ,
19- "db:push" : "prisma db push" ,
20- "db:migrate" : "prisma migrate dev" ,
21- "db:seed" : "prisma db seed" ,
22- } as const ;
18+ function getPrismaScriptMap ( packageManager : PackageManager ) {
19+ if ( packageManager === "deno" ) {
20+ const prismaSpecifier = getDenoPrismaSpecifier ( ) ;
21+
22+ return {
23+ "db:generate" : `deno run -A ${ prismaSpecifier } generate` ,
24+ "db:push" : `deno run -A ${ prismaSpecifier } db push` ,
25+ "db:migrate" : `deno run -A ${ prismaSpecifier } migrate dev` ,
26+ "db:seed" : `deno run -A ${ prismaSpecifier } db seed` ,
27+ } as const ;
28+ }
29+
30+ return {
31+ "db:generate" : "prisma generate" ,
32+ "db:push" : "prisma db push" ,
33+ "db:migrate" : "prisma migrate dev" ,
34+ "db:seed" : "prisma db seed" ,
35+ } as const ;
36+ }
2337
2438function getVersion ( packageName : string ) : string | undefined {
2539 return dependencyVersionMap [ packageName as AvailableDependency ] ;
@@ -137,13 +151,21 @@ export async function addPackageDependency(opts: {
137151
138152export async function writePrismaDependencies (
139153 provider : DatabaseProvider ,
154+ packageManager : PackageManager ,
140155 projectDir = process . cwd ( )
141156) : Promise < DependencyWriteResult > {
142157 const dependencies : string [ ] = [ "@prisma/client" , "dotenv" ] ;
143158 const devDependencies : string [ ] = [ "prisma" ] ;
144159 const { adapterPackage } = getDbPackages ( provider ) ;
145160 dependencies . push ( adapterPackage ) ;
146161
162+ // Deno needs node-gyp available when sqlite pulls in better-sqlite3.
163+ if ( provider === "sqlite" && packageManager === "deno" ) {
164+ devDependencies . push ( "node-gyp" ) ;
165+ }
166+
167+ const prismaScriptMap = getPrismaScriptMap ( packageManager ) ;
168+
147169 const scriptWriteResult = await addPackageDependency ( {
148170 dependencies,
149171 devDependencies,
0 commit comments