kysely-codegen
Version:
`kysely-codegen` generates Kysely type definitions from your database. That's it.
40 lines (39 loc) • 1.67 kB
TypeScript
import type { DatabaseMetadata } from '../../introspector/metadata/database-metadata';
import { AliasDeclarationNode } from '../ast/alias-declaration-node';
import { ExportStatementNode } from '../ast/export-statement-node';
import type { ExpressionNode } from '../ast/expression-node';
import { ImportStatementNode } from '../ast/import-statement-node';
import { InterfaceDeclarationNode } from '../ast/interface-declaration-node';
import { RuntimeEnumDeclarationNode } from '../ast/runtime-enum-declaration-node';
import type { GeneratorDialect } from '../dialect';
import type { RuntimeEnumsStyle } from '../generator/runtime-enums-style';
export type ColumnOverrides = Record<string, ExpressionNode | string>;
export type Overrides = {
/**
* Specifies type overrides for columns.
*
* @example
* ```ts
* // Allows overriding of columns to be a type-safe JSON column:
* {
* columns: {
* "<table_name>.<column_name>": new JsonColumnType(
* new RawExpressionNode("{ postalCode: string; street: string; city: string }")
* ),
* }
* }
* ```
*/
columns?: ColumnOverrides;
};
export type TransformOptions = {
camelCase?: boolean;
customImports?: Record<string, string>;
defaultSchemas?: string[];
dialect: GeneratorDialect;
metadata: DatabaseMetadata;
overrides?: Overrides;
runtimeEnums?: boolean | RuntimeEnumsStyle;
typeMapping?: Record<string, string>;
};
export declare const transform: (options: TransformOptions) => (ImportStatementNode | ExportStatementNode<AliasDeclarationNode | InterfaceDeclarationNode | RuntimeEnumDeclarationNode>)[];