better-auth
Version:
The most comprehensive authentication framework for TypeScript.
39 lines (38 loc) • 1.08 kB
JavaScript
import { getAuthTables } from "@better-auth/core/db";
//#region src/db/get-schema.ts
function getSchema(config) {
const tables = getAuthTables(config);
const schema = {};
for (const key in tables) {
const table = tables[key];
const fields = table.fields;
const actualFields = {};
Object.entries(fields).forEach(([key, field]) => {
actualFields[field.fieldName || key] = field;
if (field.references) {
const refTable = tables[field.references.model];
if (refTable) actualFields[field.fieldName || key].references = {
...field.references,
model: refTable.modelName,
field: field.references.field
};
}
});
if (schema[table.modelName]) {
schema[table.modelName].fields = {
...schema[table.modelName].fields,
...actualFields
};
if (table.disableMigrations) schema[table.modelName].disableMigrations = true;
continue;
}
schema[table.modelName] = {
fields: actualFields,
order: table.order || Infinity,
disableMigrations: table.disableMigrations
};
}
return schema;
}
//#endregion
export { getSchema };