21 lines
994 B
JavaScript
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); |