autosql
Version:
An auto-parser of JSON into SQL.
52 lines • 2.73 kB
TypeScript
import { MySQLDatabase } from "./mysql";
import { PostgresDatabase } from "./pgsql";
import { InsertInput, MetadataHeader, AlterTableChanges, QueryResult, QueryInput } from "../config/types";
export declare class AutoSQLHandler {
private db;
constructor(dbInstance: MySQLDatabase | PostgresDatabase);
autoCreateTable(table: string, newMetaData: MetadataHeader, tableExists?: boolean, runQuery?: boolean): Promise<QueryResult | QueryInput[]>;
autoAlterTable(table: string, tableChanges: AlterTableChanges, tableExists?: boolean, runQuery?: boolean): Promise<QueryResult | QueryInput[]>;
autoConfigureTable(inputOrTable: string | InsertInput, inputData?: Record<string, any>[] | null, inputCurrentMetaData?: MetadataHeader | AlterTableChanges | null, inputNewMetaData?: MetadataHeader | null, inputRunQuery?: boolean): Promise<QueryResult | QueryInput[]>;
fetchTableMetadata(table: string): Promise<{
currentMetaData: MetadataHeader | null;
tableExists: boolean;
}>;
splitTableData(table: string, data: Record<string, any>[], metaData: MetadataHeader): Promise<{
table: string;
data: Record<string, any>[];
metaData: MetadataHeader;
previousMetaData: MetadataHeader;
mergedMetaData: {
changes: AlterTableChanges;
updatedMetaData: MetadataHeader;
};
}[]>;
autoInsertData(inputOrTable: InsertInput | string, inputData?: Record<string, any>[], inputMetaData?: MetadataHeader, inputPreviousMetaData?: AlterTableChanges | MetadataHeader | null, inputComparedMetaData?: {
changes: AlterTableChanges;
updatedMetaData: MetadataHeader;
}, inputRunQuery?: boolean, inputInsertType?: "UPDATE" | "INSERT"): Promise<QueryInput[] | QueryResult>;
handleMetadata(table: string, data: Record<string, any>[], primaryKey?: string[]): Promise<{
currentMetaData: MetadataHeader | null;
mergedMetaData: MetadataHeader;
initialComparedMetaData: {
changes: AlterTableChanges;
updatedMetaData: MetadataHeader;
} | undefined;
changes: AlterTableChanges | null;
newMetaData: MetadataHeader;
}>;
private attemptTableSplit;
private prepareInsertData;
private configureTables;
private insertData;
private prepareStagingTables;
private insertStagingTables;
private removeStagingTables;
private resolveConflicts;
private insertFromStagingTables;
private insertToHistoryTables;
private insertHistory;
private extractNestedInputs;
autoSQL(table: string, data: Record<string, any>[], schema?: string, primaryKey?: string[]): Promise<QueryResult>;
}
//# sourceMappingURL=autosql.d.ts.map