remix-demo

react router (remix) demo

git clone https://9o.is/git/remix-demo.git

db.server.ts

(692B)


      1 import { PrismaClient } from "@prisma/client";
      2 import invariant from "tiny-invariant";
      3 
      4 let prisma: PrismaClient;
      5 
      6 declare global {
      7   var __db__: PrismaClient;
      8 }
      9 
     10 if (!global.__db__) {
     11   global.__db__ = getClient();
     12 }
     13 prisma = global.__db__;
     14 
     15 function getClient() {
     16   const { DATABASE_URL } = process.env;
     17   invariant(typeof DATABASE_URL === "string", "DATABASE_URL env var not set");
     18 
     19   const databaseUrl = new URL(DATABASE_URL);
     20 
     21   console.log(`🔌 setting up prisma client to ${databaseUrl.host}`);
     22 
     23   const client = new PrismaClient({
     24     datasources: {
     25       db: {
     26         url: databaseUrl.toString(),
     27       },
     28     },
     29   });
     30 
     31   client.$connect();
     32 
     33   return client;
     34 }
     35 
     36 export { prisma };