@quory/core
Version:
Quickly extract relationships from any database
105 lines (101 loc) • 2.5 kB
text/typescript
import type {
DatabaseDriver,
GenericDataType,
Relationship,
TableColumn,
Row,
} from "./DatabaseDriver";
import getSchemas from "./getSchemas";
import {
type Condition,
type ValueCondition,
type ValueConditionOperator,
valueConditionOperators,
type BooleanCondition,
type BooleanConditionOperator,
booleanConditionOperators,
type ListCondition,
type ListConditionOperator,
listConditionOperators,
ConditionOperator,
type JoinDef,
type Query,
type PreparedJoinDef,
type PreparedQuery,
isBooleanCondition,
isValueCondition,
isListCondition,
} from "./prepareQuery";
import runQuery from "./runQuery";
import getCountForQuery from "./getCountForQuery";
import getRelationsForTable from "./getRelationsForTable";
import getEntitiesAndJunctions from "./getEntitiesAndJunctions";
import findTableFromSchemas from "./util/findTableFromSchemas";
import splitTableRef from "./util/splitTableRef";
import isConditionComplete from "./util/isConditionComplete";
import parseToCompleteCondition from "./util/parseToCompleteCondition";
import areQueriesEqual from "./util/areQueriesEqual";
export {
getSchemas,
runQuery,
getCountForQuery,
getRelationsForTable,
getEntitiesAndJunctions,
Relationship,
TableColumn,
GenericDataType,
Row,
DatabaseDriver,
ValueCondition,
ValueConditionOperator,
valueConditionOperators,
isValueCondition,
BooleanCondition,
BooleanConditionOperator,
booleanConditionOperators,
isBooleanCondition,
ListCondition,
ListConditionOperator,
listConditionOperators,
isListCondition,
Condition,
ConditionOperator,
isConditionComplete,
parseToCompleteCondition,
JoinDef,
Query,
PreparedJoinDef,
PreparedQuery,
findTableFromSchemas,
splitTableRef,
areQueriesEqual,
};
export type DatabaseTableInfo = {
name: string;
type?: "entity" | "junction";
columns: {
name: string;
dataType: string;
genericDataType: GenericDataType;
isNullable: boolean;
includedInPrimaryKey: boolean;
foreignKeys: {
foreignSchemaName: string;
foreignTableName: string;
foreignColumnName: string;
hasForeignKeyConstraint: boolean;
confidence: number;
}[];
foreignKeyReferences: {
localSchemaName: string;
localTableName: string;
localColumnName: string;
hasForeignKeyConstraint: boolean;
confidence: number;
}[];
}[];
};
export type DatabaseSchema = {
name: string;
tables: DatabaseTableInfo[];
};