sql generator

This commit is contained in:
Jan Prochazka
2021-03-28 18:38:45 +02:00
parent bb41236a5f
commit d5118909d1
9 changed files with 445 additions and 38 deletions

View File

@@ -0,0 +1,31 @@
import { DatabaseInfo } from 'dbgate-types';
import _ from 'lodash';
export function addTableDependencies(db: DatabaseInfo): DatabaseInfo {
const allForeignKeys = _.flatten(db.tables.map(x => x.foreignKeys));
return {
...db,
tables: db.tables.map(table => ({
...table,
dependencies: allForeignKeys.filter(x => x.refSchemaName == table.schemaName && x.refTableName == table.pureName),
})),
};
}
function fillTableExtendedInfo(db: DatabaseInfo) {
return {
...db,
tables: db.tables.map(table => ({
...table,
columns: (table.columns || []).map(column => ({
pureName: table.pureName,
schemaName: table.schemaName,
...column,
})),
})),
};
}
export function extendDatabaseInfo(db: DatabaseInfo): DatabaseInfo {
return fillTableExtendedInfo(addTableDependencies(db));
}