import { UserType } from "../types"; import grabDbFullName from "./grab-db-full-name"; type Param = { /** * Database full name or slug */ dbName?: string; userId?: string | number; user?: UserType | null; nullable?: boolean; }; /** * # Grab full database name * @description Grab full database name from slug or full name * @param param0 * @returns */ export default function grabDbNames(params?: Param) { const dbNamePrefix = process.env.DSQL_USER_DB_PREFIX; const finalUserId = params?.user?.id || params?.userId; const userDbPrefix = finalUserId ? `${dbNamePrefix}${finalUserId}_` : ``; const finalDbName = params?.dbName || process.env.DSQL_DB_NAME || process.env.DSQL_DB_SLUG; const dbSlug = finalDbName?.replace(userDbPrefix, ""); if (!dbSlug) throw new Error(`No Db Name Provided!`); const dbFullName = grabDbFullName({ dbName: dbSlug, user: params?.user, userId: params?.userId, }); if (!dbFullName) throw new Error(`Couldn't grab DB full name!`); return { userDbPrefix, dbFullName, dbNamePrefix, dbSlug, }; }