UNPKG

autosql

Version:

An auto-parser of JSON into SQL.

166 lines 4.3 kB
import type { Client as SSHClient, ClientChannel } from "ssh2"; export interface ColumnDefinition { type: string | null; length?: number; allowNull?: boolean; unique?: boolean; index?: boolean; pseudounique?: boolean; categorical?: boolean; singleValue?: boolean; primary?: boolean; autoIncrement?: boolean; default?: any; decimal?: number; calculated?: boolean; updatedCalculated?: boolean; calculatedDefault?: any; previousType?: string; tableName?: string[]; } export type MetadataHeader = Record<string, ColumnDefinition>; export declare function isMetadataHeader(obj: any): obj is MetadataHeader; export type supportedDialects = "mysql" | "pgsql"; export interface AlterTableChanges { addColumns: MetadataHeader; modifyColumns: MetadataHeader; dropColumns: string[]; renameColumns: { oldName: string; newName: string; }[]; nullableColumns: string[]; noLongerUnique: string[]; primaryKeyChanges: string[]; } export interface DatabaseConfig { sqlDialect: supportedDialects; host?: string; user?: string; password?: string; database?: string; port?: number; schema?: string; table?: string; metaData?: { [tableName: string]: MetadataHeader; }; existingMetaData?: { [tableName: string]: MetadataHeader; }; updatePrimaryKey?: boolean; primaryKey?: string[]; engine?: string; charset?: string; collate?: string; encoding?: string; pseudoUnique?: number; categorical?: number; autoIndexing?: boolean; decimalMaxLength?: number; maxKeyLength?: number; maxVarcharLength?: number; sampling?: number; samplingMinimum?: number; insertType?: "UPDATE" | "INSERT"; insertStack?: number; safeMode?: boolean; deleteColumns?: boolean; autoSplit?: boolean; addTimestamps?: boolean; useStagingInsert?: boolean; addHistory?: boolean; historyTables?: string[]; addNested?: boolean; nestedTables?: string[]; excludeBlankColumns?: boolean; useWorkers?: boolean; maxWorkers?: number; sshConfig?: SSHKeys; sshStream?: ClientChannel | null; sshClient?: SSHClient; } export interface SSHKeys { host: string; port: number; username: string; password?: string; private_key_path?: string; private_key?: string; timeout?: number; debug?: boolean; source_address?: string; source_port?: number; destination_address: string; destination_port: number; } export type QueryInput = string | QueryWithParams; export type QueryWithParams = { query: string; params?: any[]; }; export interface TranslateMap { serverToLocal: Record<string, string>; localToServer: Record<string, string>; } export interface DialectConfig { dialect: supportedDialects; requireLength: string[]; optionalLength: string[]; noLength: string[]; decimals: string[]; translate: TranslateMap; defaultTranslation: Record<string, string>; sqlize: SqlizeRule[]; engine: string; charset: string; collate: string; encoding: string; maxIndexCount?: number; } export interface InsertResult { start: Date; end: Date; duration: number; affectedRows: number; } export interface InsertInput { table: string; data: Record<string, any>[]; metaData: MetadataHeader; previousMetaData: AlterTableChanges | MetadataHeader | null; comparedMetaData?: { changes: AlterTableChanges; updatedMetaData: MetadataHeader; }; runQuery?: boolean; insertType?: "UPDATE" | "INSERT"; } export interface QueryResult { start: Date; end: Date; duration: number; affectedRows?: number; success: boolean; results?: any[]; error?: string; table?: string; } export interface metaDataInterim { [key: string]: { uniqueSet: Set<any>; valueCount: number; nullCount: number; types: Set<string>; collated_type?: string; length: number; decimal: number; trueMaxDecimal: number; }; } export interface SqlizeRule { regex: string; replace: string; type: true | string[]; } //# sourceMappingURL=types.d.ts.map