kysely-codegen
Version:
`kysely-codegen` generates Kysely type definitions from your database. That's it.
36 lines (35 loc) • 1.57 kB
TypeScript
import type { Kysely, ColumnMetadata as KyselyColumnMetaData, TableMetadata as KyselyTableMetadata } from 'kysely';
import { EnumCollection } from '../../enum-collection';
import type { IntrospectOptions } from '../../introspector';
import { Introspector } from '../../introspector';
import { DatabaseMetadata } from '../../metadata/database-metadata';
import type { PostgresDB } from './postgres-db';
export type PostgresDomainInspector = {
rootType: string;
typeName: string;
typeSchema: string;
};
export type TableReference = {
schema?: string;
name: string;
};
export type PostgresIntrospectorOptions = {
defaultSchemas?: string[];
domains?: boolean;
partitions?: boolean;
};
export declare class PostgresIntrospector extends Introspector<PostgresDB> {
protected readonly options: PostgresIntrospectorOptions;
constructor(options?: PostgresIntrospectorOptions);
createDatabaseMetadata({ domains, enums, partitions, tables: rawTables, }: {
domains: PostgresDomainInspector[];
enums: EnumCollection;
partitions: TableReference[];
tables: KyselyTableMetadata[];
}): DatabaseMetadata;
getRootType(column: KyselyColumnMetaData, domains: PostgresDomainInspector[]): string;
introspect(options: IntrospectOptions<PostgresDB>): Promise<DatabaseMetadata>;
introspectDomains(db: Kysely<PostgresDB>): Promise<PostgresDomainInspector[]>;
introspectEnums(db: Kysely<PostgresDB>): Promise<EnumCollection>;
introspectPartitions(db: Kysely<PostgresDB>): Promise<TableReference[]>;
}