44 lines
879 B
TypeScript
44 lines
879 B
TypeScript
import { UserType } from "../types";
|
|
import slugify from "./slugify";
|
|
|
|
type Param = {
|
|
/**
|
|
* Database full name or slug
|
|
*/
|
|
dbName?: string;
|
|
userId?: string | number;
|
|
user?: UserType | null;
|
|
};
|
|
|
|
/**
|
|
* # Grab full database name
|
|
* @description Grab full database name from slug or full name
|
|
* @param param0
|
|
* @returns
|
|
*/
|
|
export default function grabDbFullName({
|
|
dbName,
|
|
userId,
|
|
user,
|
|
}: Param): string | undefined {
|
|
const finalUserId = user?.id || userId;
|
|
|
|
if (!finalUserId) {
|
|
return dbName;
|
|
}
|
|
if (!dbName) {
|
|
return;
|
|
}
|
|
|
|
const dbNamePrefix = process.env.DSQL_USER_DB_PREFIX;
|
|
|
|
const parsedDbName = slugify(dbName, "_");
|
|
|
|
const dbSlug = parsedDbName.replace(
|
|
new RegExp(`${dbNamePrefix}_?\\d+_`),
|
|
""
|
|
);
|
|
|
|
return slugify(`${dbNamePrefix}_${finalUserId}_${dbSlug}`, "_");
|
|
}
|