@onn-software/ddl-to-gql
Version:
Convert a SQL DDL to a GraphQL implementation with all relations.
38 lines (37 loc) • 1.01 kB
TypeScript
export interface TableColDef {
key: string;
type: string;
sqlType: string;
sqlKey?: string;
nullable: boolean;
unique: boolean;
}
export interface TableRelationDef {
from: {
table: string;
key: string;
};
to: {
table: string;
key: string;
};
many: boolean;
type: string;
enabled: boolean;
nullable: boolean;
}
export interface TableDef {
tableName: string;
columns: TableColDef[];
relations: TableRelationDef[];
}
export interface QueryBuilder<TYPE extends {}, IMPL = any> {
execute(): Promise<TYPE[]>;
executeCount(): Promise<number>;
table(tableName: string): QueryBuilder<TYPE, IMPL>;
where(field: string, values: any): QueryBuilder<TYPE, IMPL>;
whereIn(field: string, values: any[]): QueryBuilder<TYPE, IMPL>;
select(fields: string | string[]): QueryBuilder<TYPE, IMPL>;
offset(offset: number): QueryBuilder<TYPE, IMPL>;
limit(limit: number): QueryBuilder<TYPE, IMPL>;
}