diff --git a/backend/ormconfig.js b/backend/ormconfig.js index c62e60c1..f49cfb58 100644 --- a/backend/ormconfig.js +++ b/backend/ormconfig.js @@ -1,38 +1,23 @@ const fs = require("fs"); const path = require("path"); const pkgUp = require("pkg-up"); - -const closestPackageJson = pkgUp.sync(); -if (!closestPackageJson) { - throw new Error("Could not find project root from ormconfig.js"); -} -const backendRoot = path.dirname(closestPackageJson); - -try { - fs.accessSync(path.resolve(backendRoot, "bot.env")); - require("dotenv").config({ path: path.resolve(backendRoot, "bot.env") }); -} catch { - try { - fs.accessSync(path.resolve(backendRoot, "api.env")); - require("dotenv").config({ path: path.resolve(backendRoot, "api.env") }); - } catch { - throw new Error("bot.env or api.env required"); - } -} +const { backendDir } = require("./dist/backend/src/paths"); +const { env } = require("./dist/backend/src/env"); const moment = require("moment-timezone"); moment.tz.setDefault("UTC"); -const entities = path.relative(process.cwd(), path.resolve(backendRoot, "dist/backend/src/data/entities/*.js")); -const migrations = path.relative(process.cwd(), path.resolve(backendRoot, "dist/backend/src/migrations/*.js")); -const migrationsDir = path.relative(process.cwd(), path.resolve(backendRoot, "src/migrations")); +const entities = path.relative(process.cwd(), path.resolve(backendDir, "dist/backend/src/data/entities/*.js")); +const migrations = path.relative(process.cwd(), path.resolve(backendDir, "dist/backend/src/migrations/*.js")); +const migrationsDir = path.relative(process.cwd(), path.resolve(backendDir, "src/migrations")); module.exports = { type: "mysql", - host: process.env.DB_HOST, - username: process.env.DB_USER, - password: process.env.DB_PASSWORD, - database: process.env.DB_DATABASE, + host: env.DB_HOST, + port: env.DB_PORT, + username: env.DB_USER, + password: env.DB_PASSWORD, + database: env.DB_DATABASE, charset: "utf8mb4", supportBigNumbers: true, bigNumberStrings: true, diff --git a/backend/src/data/db.ts b/backend/src/data/db.ts index b38bbc72..fd42f361 100644 --- a/backend/src/data/db.ts +++ b/backend/src/data/db.ts @@ -1,7 +1,11 @@ import { Connection, createConnection } from "typeorm"; import { SimpleError } from "../SimpleError"; -import connectionOptions from "../../ormconfig"; import { QueryLogger } from "./queryLogger"; +import path from "path"; +import { backendDir } from "../paths"; + +const ormconfigPath = path.join(backendDir, "ormconfig.js"); +const connectionOptions = require(ormconfigPath); let connectionPromise: Promise; diff --git a/backend/src/env.ts b/backend/src/env.ts index 13cbbdb7..b0eb3d9e 100644 --- a/backend/src/env.ts +++ b/backend/src/env.ts @@ -7,9 +7,9 @@ import { z } from "zod"; const envType = z.object({ KEY: z.string().length(32), - CLIENT_ID: z.string(), - CLIENT_SECRET: z.string(), - BOT_TOKEN: z.string(), + CLIENT_ID: z.string().min(16), + CLIENT_SECRET: z.string().length(32), + BOT_TOKEN: z.string().min(50), OAUTH_CALLBACK_URL: z.string().url(), DASHBOARD_DOMAIN: z.string(), diff --git a/backend/tsconfig.json b/backend/tsconfig.json index 011e0217..cde827e4 100644 --- a/backend/tsconfig.json +++ b/backend/tsconfig.json @@ -24,5 +24,5 @@ "useUnknownInCatchVariables": false, "allowJs": true }, - "include": ["src/**/*.ts", "ormconfig.js"] + "include": ["src/**/*.ts"] }