Files
2023-03-23 17:51:31 +08:00

22 lines
660 B
TypeScript

import { Connection, Engine } from "@/types";
import mysql from "./mysql";
import postgres from "./postgres";
export interface Connector {
testConnection: () => Promise<boolean>;
getDatabases: () => Promise<string[]>;
getTables: (databaseName: string) => Promise<string[]>;
getTableStructure: (databaseName: string, tableName: string) => Promise<string>;
}
export const newConnector = (connection: Connection): Connector => {
switch (connection.engineType) {
case Engine.MySQL:
return mysql(connection);
case Engine.PostgreSQL:
return postgres(connection);
default:
throw new Error("Unsupported engine type.");
}
};