bizmatch-project/bizmatch-server/src/drizzle/test.js

21 lines
994 B
JavaScript

const fs = require('fs');
const path = require('path');
// Angenommen, du hast eine Datei `databaseModels.js` mit deinen pgTable-Definitionen
const { users } = require('./schema.js');
function generateTypeScriptInterface(tableDefinition, tableName) {
let interfaceString = `export interface ${tableName} {\n`;
for (const [column, definition] of Object.entries(tableDefinition)) {
// Du musst die Definition parsen, um den korrekten Typ zu extrahieren
const tsType = definition.type === 'uuid' ? 'string' :
definition.type.startsWith('varchar') || definition.type === 'text' ? 'string' :
definition.type === 'boolean' ? 'boolean' : 'any';
interfaceString += ` ${column}${definition.optional ? '?' : ''}: ${tsType};\n`;
}
interfaceString += '}\n';
return interfaceString;
}
const userModelInterface = generateTypeScriptInterface(users.columns, 'User');
fs.writeFileSync(path.join(__dirname, 'UserInterface.ts'), userModelInterface);