UNPKG

create-elysiajs

Version:

Scaffolding your Elysia project with the environment with easy!

125 lines (124 loc) 4.21 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.driverNames = exports.driverNamesToDrizzle = void 0; exports.getDBIndex = getDBIndex; exports.getDrizzleConfig = getDrizzleConfig; exports.driverNamesToDrizzle = { "node-postgres": "node-postgres", "Bun.sql": "bun-sql", "Postgres.JS": "postgres-js", "MySQL 2": "mysql2", "Bun SQLite": "bun-sqlite", None: "", }; exports.driverNames = { "node-postgres": "pg", "Bun.sql": "??", "Postgres.JS": "postgres", "MySQL 2": "mysql2", "Bun SQLite": "bun:sqlite", None: "", }; function getDBIndex({ orm, driver, packageManager }) { if (orm === "Prisma") return [ `import { PrismaClient } from "@prisma/client"`, "", "export const prisma = new PrismaClient()", "", `export * from "@prisma/client"`, ].join("\n"); if (driver === "node-postgres") return [ `import { drizzle } from "drizzle-orm/node-postgres"`, `import { Client } from "pg"`, `import { config } from "../config.ts"`, "", "export const client = new Client({", " connectionString: config.DATABASE_URL,", "})", "", "export const db = drizzle({", " client,", ' casing: "snake_case",', "})", ].join("\n"); if (driver === "Postgres.JS") return [ `import { drizzle } from "drizzle-orm/postgres-js"`, `import postgres from "postgres"`, `import { config } from "../config.ts"`, "", "const client = postgres(config.DATABASE_URL)", "export const db = drizzle({", " client,", ' casing: "snake_case",', "})", ].join("\n"); if (driver === "Bun.sql") return [ `import { drizzle } from "drizzle-orm/bun-sql"`, `import { config } from "../config.ts"`, `import { SQL } from "bun"`, "", "export const sql = new SQL(config.DATABASE_URL)", "", "export const db = drizzle({", " client: sql,", ' casing: "snake_case",', "})", ].join("\n"); if (driver === "MySQL 2") return [ `import { drizzle } from "drizzle-orm/mysql2"`, `import mysql from "mysql2/promise"`, `import { config } from "../config.ts"`, "", "export const connection = await mysql.createConnection(config.DATABASE_URL)", `console.log("🗄️ Database was connected!")`, "", "export const db = drizzle({", " client: connection,", ' casing: "snake_case",', "})", ].join("\n"); if (driver === "Bun SQLite" && packageManager === "bun") return [ `import { drizzle } from "drizzle-orm/bun-sqlite"`, `import { Database } from "bun:sqlite";`, "", `export const sqlite = new Database("sqlite.db")`, "export const db = drizzle({", " client: sqlite,", ' casing: "snake_case",', "})", ].join("\n"); return [ `import { drizzle } from "drizzle-orm/better-sqlite3`, `import { Database } from "better-sqlite3";`, "", `export const sqlite = new Database("sqlite.db")`, "export const db = drizzle({", " client: sqlite,", ' casing: "snake_case",', "})", ].join("\n"); } function getDrizzleConfig({ database }) { return [ `import type { Config } from "drizzle-kit"`, `import env from "env-var"`, "", 'const DATABASE_URL = env.get("DATABASE_URL").required().asString()', "", "export default {", ` schema: "./src/db/schema.ts",`, ` out: "./drizzle",`, ` dialect: "${database.toLowerCase()}",`, ` casing: "snake_case",`, " dbCredentials: {", " url: DATABASE_URL", " }", "} satisfies Config", ].join("\n"); }