39 lines
1.1 KiB
TypeScript
39 lines
1.1 KiB
TypeScript
import { DSQL_DatabaseSchemaType, UserType } from "@/package-shared/types";
|
|
import serverError from "./serverError";
|
|
import fs from "fs";
|
|
import grabDirNames from "@/package-shared/utils/backend/names/grab-dir-names";
|
|
import { EJSON } from "@/client-exports";
|
|
|
|
type Params = {
|
|
userId?: string | number;
|
|
};
|
|
|
|
/**
|
|
* # Grab User Schema Data
|
|
*/
|
|
export default function grabUserSchemaData({
|
|
userId,
|
|
}: Params): DSQL_DatabaseSchemaType[] | null {
|
|
try {
|
|
const { userSchemaMainJSONFilePath } = grabDirNames({ userId });
|
|
const schemaJSON = fs.readFileSync(
|
|
userSchemaMainJSONFilePath || "",
|
|
"utf-8"
|
|
);
|
|
const schemaObj = EJSON.parse(schemaJSON) as DSQL_DatabaseSchemaType[];
|
|
return schemaObj;
|
|
} catch (error: any) {
|
|
serverError({
|
|
component: "grabUserSchemaData",
|
|
message: error.message,
|
|
});
|
|
|
|
global.ERROR_CALLBACK?.(
|
|
`Error Grabbing User Schema Data`,
|
|
error as Error
|
|
);
|
|
|
|
return null;
|
|
}
|
|
}
|