From 6594c31a70a0336a4675af90817c3bf9c672d45b Mon Sep 17 00:00:00 2001 From: Mike Cao Date: Thu, 1 May 2025 04:38:43 -0700 Subject: [PATCH] Use esbuild to build prisma client. --- db/mysql/schema.prisma | 7 +++++-- db/postgresql/schema.prisma | 7 +++++-- package.json | 2 +- scripts/build-prisma-client.js | 14 ++++++++++++++ 4 files changed, 25 insertions(+), 5 deletions(-) create mode 100644 scripts/build-prisma-client.js diff --git a/db/mysql/schema.prisma b/db/mysql/schema.prisma index b3157ba6..825dfe81 100644 --- a/db/mysql/schema.prisma +++ b/db/mysql/schema.prisma @@ -1,6 +1,9 @@ generator client { - provider = "prisma-client" - output = "../src/generated/prisma" + provider = "prisma-client" + output = "../src/generated/prisma" + moduleFormat = "esm" + generatedFileExtension = "ts" + importFileExtension = "ts" } datasource db { diff --git a/db/postgresql/schema.prisma b/db/postgresql/schema.prisma index 4bea2e3c..9a78e434 100644 --- a/db/postgresql/schema.prisma +++ b/db/postgresql/schema.prisma @@ -1,6 +1,9 @@ generator client { - provider = "prisma-client" - output = "../src/generated/prisma" + provider = "prisma-client" + output = "../src/generated/prisma" + moduleFormat = "esm" + generatedFileExtension = "ts" + importFileExtension = "ts" } datasource db { diff --git a/package.json b/package.json index 996fd566..f70f16dc 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,7 @@ "build-geo": "node scripts/build-geo.js", "build-db-schema": "prisma db pull", "build-db-client": "prisma generate", - "build-prisma": "tsc --project tsconfig.prisma.json", + "build-prisma-client": "node scripts/build-prisma-client.js", "build-icons": "svgr ./src/assets --out-dir ./src/components/svg --typescript", "set-routes-manifest": "node scripts/set-routes-manifest.js", "update-tracker": "node scripts/update-tracker.js", diff --git a/scripts/build-prisma-client.js b/scripts/build-prisma-client.js new file mode 100644 index 00000000..60c7175f --- /dev/null +++ b/scripts/build-prisma-client.js @@ -0,0 +1,14 @@ +import esbuild from 'esbuild'; + +esbuild + .build({ + entryPoints: ['src/generated/prisma/client.ts'], // Adjust this to your entry file + bundle: true, // Bundle all files into one (optional) + outfile: 'dist/generated/prisma/client.js', // Output file + platform: 'node', // For Node.js compatibility + target: 'es2020', // Target version of Node.js + format: 'esm', // Use ESM format + sourcemap: true, // Optional: generates source maps for debugging + external: [], // Optional: Exclude external dependencies from bundling + }) + .catch(() => process.exit(1));