datasquirel/package-shared/utils/grab-db-full-name.ts
Benjamin Toby 7e8bb37c09 Updates
2025-07-05 14:59:30 +01:00

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}`, "_");
}