47 lines
1.1 KiB
TypeScript
47 lines
1.1 KiB
TypeScript
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,
|
|
};
|
|
}
|