Full-stack Next.js 16 app with three scraping pipelines: - AirScale CSV → Anymailfinder Bulk Decision Maker search - LinkedIn Sales Navigator → Vayne → Anymailfinder email enrichment - Apify Google SERP → domain extraction → Anymailfinder bulk enrichment Includes Docker multi-stage build + docker-compose for Coolify deployment. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
18 lines
646 B
TypeScript
18 lines
646 B
TypeScript
import { PrismaClient } from "@prisma/client";
|
|
import { PrismaBetterSqlite3 } from "@prisma/adapter-better-sqlite3";
|
|
|
|
// Prisma 7 requires a driver adapter for SQLite connections.
|
|
function createPrisma() {
|
|
const url = process.env.DATABASE_URL || "file:./leadflow.db";
|
|
const adapter = new PrismaBetterSqlite3({ url });
|
|
return new PrismaClient({ adapter } as ConstructorParameters<typeof PrismaClient>[0]);
|
|
}
|
|
|
|
const globalForPrisma = globalThis as unknown as {
|
|
prisma: PrismaClient | undefined;
|
|
};
|
|
|
|
export const prisma = globalForPrisma.prisma ?? createPrisma();
|
|
|
|
if (process.env.NODE_ENV !== "production") globalForPrisma.prisma = prisma;
|